線上有服務器卡頓情況, gc看起來正常,時間短,但應用暫停比GC時間長,io比較高。
GC時間並不代表JVM暫停時間,通過使用-XX:+PrintGCApplicationStoppedTime 打印真正的JVM暫停時間;
JVM對GC日誌的寫入和perf文件的更新,在高IO場景下會造成長時間的STW問題,建議方案:
1。 將GC日誌保存到ramfs、tmpfs 對內存有影響謹慎使用
也可以更換爲ssd 等
2。 生產環境增加JVM啓動參數-XX:+PerfDisableSharedMem來避免生成perf文件(缺陷是無法使用JSTAT等工具)
3。調用內核參數,修改pdflush進程cache寫磁盤的頻率,以避免IO積壓。