1. 程式人生 > 其它 >jvm-gc調優2

jvm-gc調優2

系統崩潰了, 所有請求超時
看系統cpu :

top 
1  

檢視系統cpu使用 。 
top -H -p pid   # 檢視java檢查中執行緒使用情況 。 如:top -H -p 13310

發現很多執行緒cpu使用率為100%。

出現的第一列pid 是執行緒id  如 13333,將其轉16進位制  : 3415 

檢視程序13310中的執行緒號為3415的執行緒
./jstack 13310 |grep -A 50 3415   # nid 就是執行緒id 。 
"GC task thread#5 (ParallelGC)" os_prio=0 tid=0x00007f26f8067800 nid=0x3415 runnable 
檢查所有執行緒

./jstack 13310 >> 123.txt  

jstat -gcutil 13310   # 檢視gc總共消耗時間

jstat -heap 13310 # 版本不一致還是啥問題, 檢視不了 

生成dump 

./jmap -dump:file=ipt.dump 13310

由於服務dump 已經到了8g,不好檢視處理 

修改專案啟動指令碼:

 java -Xms128m -Xmx1024m -XX:+PrintGCDateStamps -XX:+PrintGCDetails -Xloggc:./logs/gclogs -jar ***.jar --server.port=8082 > /dev/null 2>&1 &

由於減少了記憶體, 上面的系統崩潰不一定會出現, 但是假死應該還會出現, 等待分析Gc 輸出。