1.先定位進程
top -c
大寫P交互命令,按着百分比排序
比如: pid爲 19789,負載過高
2.再定位線程
top -Hp 19789
或者top -H -p 19789 或者top -p 19789 -H
大寫P交互命令,按着百分比排序
比如線程 pid1367 負載最大
3.定位代碼
①先將1367裝換爲十六進制
printf "%x\n" 1367
爲 557
jstack 19789 | grep "557" -C9 --color
或者
jstack 19789 | grep "557" -C5 --color
定位代碼ok
++++++++++++++++++++++++++++++++++++++++++++++++++++++=
順便提一句:
JVM監控用的什麼工具呀 比如Full GC觸發
監控工具pinpoint可以監控
jstat比較詳細
jvisualvm 裏面安裝 Visual GC 這個插件
JVM監控
skywalking支持監控:Heap, Non-Heap, GC(YGC和FGC)。 Pinpoint能夠監控的指標主要有:Heap, Non-Heap, FGC, DirectBufferMemory, MappedBufferMemory,但是沒有YGC
去哪兒監控工具開源
bistoury
MAT 內存分支工具
可以通過jmap -dump:format=b,file=heap.bin <pid>將內存dump下來,然後上傳到https://memory.console.perfma.com 上分析一下,在對象視圖裏找到那個對象,如果標紅了,就說明這個對象是即將被JVM GC回收的