75. CPU 100%运行实战案例分析
75. CPU 100%運行實戰案例分析
生產庫問題現象:
1),每次tomcat啟動后第8天左右就會出現CPU 100%運行的情況;
2),jmap -heap pid命令查看老年代已使用99%;
jvm啟動配置項:
-server -Xms2048m -Xmx2048m -Xmn700m -XX:SurvivorRatio=8 -XX:PermSize=256m -XX:MaxPermSize=256m -XX:+PrintGCDetails -XX:+PrintGCDateStamps -XX:+PrintHeapAtGC -XX:+PrintTenuringDistribution -Xloggc:/usr/local/work/tomcat/logs/jvmgc.log
案發現場jmap堆內存分配截圖:
案發時GC情況,每隔幾秒執行一次full gc:
tomcat剛啟動時:
一次GC前后Survivo占用內存大小分析,每次減少1M左右:
運行至最后:
發現每次年輕代垃圾回收后Survivo區會減少1500或2048K
通過分析應該是jvm自動調整了年輕代堆內存大小及Survivor比例,經過查找jvm是通過 -XX:+UseAdaptiveSizePolicy和 -XX:-UseAdaptiveSizePolicy來啟用和禁用jvm自動調整堆內存大小的,通過jinfo -flag UseAdaptiveSizePolicy pid參數配置查看命令可以看到當前配置是打開的即(-XX:+UseAdaptiveSizePolicy),在jvm參數中設置為禁用(-XX:-UseAdaptiveSizePolicy)過一段時間后查看Survivo區域按照配置值進行分配未再隨時間減少,問題解決后最終參數配置:
相關問題分析連接:
http://www.cnblogs.com/moonandstar08/p/5751175.html
總結
以上是生活随笔為你收集整理的75. CPU 100%运行实战案例分析的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 73.JVM内存基础结构,参数分类,推荐
- 下一篇: SpaceX送游客上太空 或深刻改变人类