JVM之Jstat工具原理

2021-08-07 21:23:10 字數 668 閱讀 1492

原理:從乙個叫perfdata的共享檔案獲取資料,預設是指/tmp/hsperfdata_/這個檔案;

useperfdata:預設是開啟的,如果關閉了useperfdata這個引數,那麼jvm啟動過程中perfdata的記憶體不會被建立;

perfdisablesharedmem:該引數決定了儲存perfdata的記憶體是不是可以被共享。jvm在啟動的時候會分配一塊記憶體來存perfdata,如果設定了這個引數,說明該記憶體資料不能被其它程序共享,這樣一來譬如jps、jstat等都無法工作。預設支援共享;

perfdata檔案刪除:正常情況下當jvm程序退出的時候會自動刪除,但是當執行kill -9命令時,由於jvm不能捕獲這種訊號,雖然jvm程序不存在了,但是這個檔案還是存在的。這個檔案不是一直存在的,當再次有jvm程序啟動時會自動刪除這些無用的檔案。

perfdata檔案更新:由於perfdata檔案是通過mmap的方式對映到了記憶體裡,而jstat是直接通過directbytebuffer的方式從perfdata裡讀取的,所以只要記憶體裡的值變了,那我們從jstat看到的值就會發生變化,記憶體裡的值什麼時候變,取決於-xx:perfdatasamplinginterval這個引數,預設是50ms,也就是說50ms更新一次值,基本上可以認為是實時的了。

JVM工具 1 堆疊檢查利器jstat的使用

loaded 載入class的數量 bytes 所占用空間大小 unloaded 未載入數量 bytes 未載入占用空間 time 時間 compiled 編譯數量。failed 失敗數量 invalid 不可用數量 time 時間 failedtype 失敗型別 failedmethod 失敗的方...

jstat使用詳解(分析JVM的使用情況)

如下所示為jstat的命令格式 jstat t h 如下表示分析程序id為31736 的gc情況,每隔1000ms列印一次記錄,列印10次停止,每3行後列印指標頭部 jstat gc h331736 1000 101 jstat gc jstat gc x其對應的指標含義如下 引數描述 s0c年輕代...

JVM的監控工具之jhat

生成堆的快照檔案 jmap dump live,format b,file e test.bin 17312 用jhat命令來開啟 jhat test.bin 顯示 server is ready 時,就表示jhat已經把這個快照檔案解開了。我們可以在瀏覽器中輸入http localhost 700...