jvm5 效能調優

2022-06-28 17:18:14 字數 836 閱讀 2260

知識

工具資料

經驗案例1

問題:經常有使用者反饋長時間出現卡頓的現象

處理思路:

偶發,所以不會是sql問題

監控cpu

監控記憶體

發現fullgc頻繁,每次需要20-30s,停頓時間過長

總結:大物件過多,jvm記憶體設定的過大,老年代經常佔滿觸發fullgc,老年代記憶體過大每次fullgc時間過長

解決:部署多個web容器,每個web容器的堆記憶體設定到合理值,不宜過大,減少每次fullgc時間,多個web容器集群提供服務

問題:不定期記憶體溢位,把堆記憶體加大也無濟於事。匯出堆轉儲快照資訊,沒有任何資訊。記憶體監控正常

處理思路:jvm正常,軟體沒有問題,那就說明伺服器有問題。系統中用到了nio直接記憶體,機器記憶體過小,直接記憶體將記憶體空間占用了,導致堆記憶體不夠用了,觸發oom

總結經驗:處理問題時不要把直接記憶體忽略了

架構:

問題:服務a服務b經常jvm崩潰

尋找原因為:連線請求過多,服務處理不過來,導致jvm崩潰

解決:服務a前增加乙個佇列(比如mq)

JVM效能調優

gc 優化的兩個目標 將進入老年代的物件數量降到最低 減少 full gc 的執行時間 gc 優化的基本原則是 將不同的 gc 引數應用到兩個及以上的伺服器上然後比較它們的效能,然後將那些被證明可以提高效能或減少 gc 執行時間的引數應用於最終的工作伺服器上。gc 優化需要考慮的 jvm 引數 型別...

Spark效能調優 JVM調優

通過一張圖讓你明白以下四個問題 1.jvm gc機制,堆記憶體的組成 2.spark的調優為什麼會和jvm的調優會有關聯?因為scala也是基於jvm執行的語言 3.spark中oom產生的原因 4.如何在jvm這個層面上來對spark進行調優 補充 spark程式執行時 jvm堆記憶體分配比例 r...

jvm 效能調優工具

工具 jpsjps l 主程序 jps m 執行傳入主類的引數 jps v 虛擬機器引數 jstat jstat gcutil pid 1000 1秒 jstat jinfo jmap jmap histo pid jmap dump formart b,file filepath pid jhat...