在Linux環境下查看佔用內存較多的java對象
- 使用top查看到排名靠前的java進程
- 查看佔用內存較多的前30名java對象 jmap -histo:live 【pid】 | head -30,也可以導出到文件中:
jmap -dump:format=b,file=/filepath/heap.bin pid
備註:如果當前用戶不是啓動java進程的用戶,使用jmap命令會報如下錯誤:well-known file is not secure
使用su切換到java用戶再執行即可;
root用戶下查看所有用戶:
cat /etc/passwd
如果查詢結果中存在很多系統類,可以使用grep命令進一步過濾出業務中的對象:
例如:
jmap -histo:live 54968 |grep com.XXX| head -30
jmap -dump:format=b,file=/filepath/heap.bin pid
jmap -histo 54968|grep com.XXX |sort -k 2 -g -r|less