jmap的幾個操作要慎用

jmap命令可以獲得運行中的jvm的堆的快照,從而可以離線分析堆,以檢查內存洩漏,檢查一些嚴重影響性能的大對象的創建,檢查系統中什麼對象最多,各種對象所佔內存的大小等等。可以使用jmap生成Heap Dump。 我們要比較清楚楚執行後會發生什麼,否則有可能就會導致線上嚴重故障。

最主要的危險操作是下面這三種:

1. jmap -dump

這個命令執行,JVM會將整個heap的信息dump寫入到一個文件,heap如果比較大的話,就會導致這個過程比較耗時,並且執行的過程中為了保證dump的信息是可靠的,所以會暫停應用。

2. jmap -permstat

這個命令執行,JVM會去統計perm區的狀況,這整個過程也會比較的耗時,並且同樣也會暫停應用。

3. jmap -histo:live

這個命令執行,JVM會先觸發gc,然後再統計信息。

上面的這三個操作都將對應用的執行產生影響,所以建議如果不是很有必要的話,不要去執行。


分享到:


相關文章: