jvm 性能調優
2、目標
在如下三點中,經過修改jvm參數尋找平衡。html
- GC的時間足夠的小
- GC的次數足夠的少
- 發生Full GC的週期足夠的長
3、方法
- 減小使用全局變量和大對象;
- 調整新生代的大小到最合適;
- 設置老年代的大小爲最合適;
- 選擇合適的GC收集器;
4、經常使用分析工具
- JConsole:可直接輸入
jconsole
使用。
- VisualVM:可直接輸入
jvisualvm
使用。
jps
:主要用來輸出jvm中運行的進程狀態信息。
jstack
:主要用來查看某個java進程內的線程堆棧信息。
jmap
:用來查看堆內存使用狀況,通常結合jhat使用。
jstat
:jvm統計監測工具。
5、補充
常見的性能問題java
- cpu load 太高致使系統不可用或者tps(吞吐量)急劇下降
- jvm 問題致使tps(吞吐量)下降
- young gc 次數過多
- full gc 次數過多
- full gc 時間長
- perm space 回收頻繁或oom(Out Of Memory)
- 重複查詢氾濫
- 鎖競爭或死循環
- 鏈接池鏈接佔用
- 不合理的使用集合