系統應用出現問題,可以採用查看dump文件來進行分析。
常見的dump文件有heapdump,threaddump.hprofdump 等。
其中threaddump很容易查看線程的阻塞等情況。hprofdump可以分析應用的對象是否內存泄漏等。
舉例在linux服務器上打hprofdump文件。
首先找到對應的進程:ps -ef| grep java. 顯示的進程號和java的目錄。
然後 在對應的java目錄的bin 目錄下看是否有jrcmd文件夾(一般會有)。
最後,需要切換成對應的用戶,su aa. 在java的bin目錄下執行: ./jrcmd 73996(進程id) hprofdump filename=/*/* xx.hprof .將dump文件寫入到xx.hprof文件。
還需要賦權限給該文件。chmod 777 xxx.hprof文件。然後就進行下載等操作了。查看該文件可以使用dumpReviewer軟件。
如果是下載threaddump文件,可以採用jmap命令,可以網上搜索。
如果是windows環境,在cmd界面,直接ctrl + break(鍵盤的右上角的 pausebreak)鍵即可,然後複製下來就好了。是不是很暴力簡單。。。。
這兩個方法都是自己親測可以的。windows的可以供本地環境測試,linux可以供測試或者生產驗證分析。