1. 程式人生 > >jvm 性能調優

jvm 性能調優

內存 使用情況 blog 集合 鎖競爭 運行 導致 java進程 分析

jvm 性能調優

一、jvm 內存模型

二、目標

在以下三點中,通過修改jvm參數尋找平衡。

  • GC的時間足夠的小
  • GC的次數足夠的少
  • 發生Full GC的周期足夠的長

三、方法

  1. 減少使用全局變量和大對象;
  2. 調整新生代的大小到最合適;
  3. 設置老年代的大小為最合適;
  4. 選擇合適的GC收集器;

四、常用分析工具

  • JConsole:可直接輸入jconsole使用。
  • VisualVM:可直接輸入jvisualvm使用。
  • jps:主要用來輸出jvm中運行的進程狀態信息。
  • jstack:主要用來查看某個java進程內的線程堆棧信息。
  • jmap:用來查看堆內存使用情況,一般結合jhat使用。
  • jstat
    :jvm統計監測工具。

五、補充

常見的性能問題

  1. cpu load 過高導致系統不可用或者tps(吞吐量)急劇降低
  2. jvm 問題導致tps(吞吐量)降低
    • young gc 次數過多
    • full gc 次數過多
    • full gc 時間長
    • perm space 回收頻繁或oom(Out Of Memory)
  3. 重復查詢泛濫
  4. 鎖競爭或死循環
  5. 連接池連接占用
  6. 不合理的使用集合

jvm 性能調優