<bdo id="4g88a"><xmp id="4g88a">
  • <legend id="4g88a"><code id="4g88a"></code></legend>
    Fork me on GitHub

    京東面試:如何進行JVM調優?

    JVM 調優是一個很大的話題,在回答“如何進行 JVM 調優?”之前,首先我們要回答一個更為關鍵的問題,那就是,我們為什么要進行 JVM 調優?

    只有知道了為什么要進行 JVM 調優之后,你才能準確的回答出來如何進行 JVM 調優?

    要進行 JVM 調優無非就是以下兩種情況:

    1. 目標驅動型的 JVM 調優,如,我們是為了最短的停頓時間所以要進行 JVM 調優,或者是我們為了最大吞吐量所以要進行 JVM 調優等。
    2. 問題驅動型的 JVM 調優,因為生產環境出現了頻繁的 FullGC 了,導致程序執行變慢,所以我們要進行 JVM 調優。

    所以,針對不同的 JVM 調優的手段和側重點也是不同的。

    總的來說,JVM 進行調優的流程如下:

    1. 確定 JVM 調優原因
    2. 分析 JVM(目前)運行情況
    3. 設置 JVM 調優參數
    4. 壓測觀測調優后的效果
    5. 應用調優后的配置

    具體來說它們的執行如下。

    1.確定JVM調優原因

    先確定是目標驅動型的 JVM 調優,還是問題驅動型的 JVM 調優。

    如果是目標性的 JVM 調優,那么 JVM 調優實現思路就比較簡單了,如:

    1. 以最短停頓時間為目標的調優,只需要將垃圾收集器設置成以最短停頓時間的為目標的垃圾收集器即可,如 CMS 收集器或 G1 收集器。
    2. 以吞吐量為目標的調優,只需要將垃圾收集器設置為 Parallel Scavenge 和 Parallel Old 這種以吞吐量為主要目標的垃圾回收器即可。

    如果是以問題驅動的 JVM 調優,那就要先分析問題是什么,然后再進行下一步的調優了。

    2.分析JVM運行情況

    我們可以借助于目前主流的監控工具 Prometheus + Grafana 和 JDK 自帶的命令行工具,如 jps、jstat、jinfo、jstack 等進行 JVM 運行情況的分析。

    主要分析的點是 Young GC 和 Full GC 的頻率,以及垃圾回收的執行時間。

    3.設置JVM調優參數

    常見的 JVM 調優參數有以下幾個:

    • 調整堆內存大小:通過設置 -Xms(初始堆大?。┖?-Xmx(最大堆大?。﹨祦碚{整堆內存大小,避免頻繁的垃圾回收。
    • 選擇合適的垃圾回收器:根據應用程序的性能需求和特點,選擇合適的垃圾回收器,如 Serial GC、Parallel GC、CMS GC、G1 GC 等。
    • 調整新生代和老年代比:通過設置 -XX:NewRatio 參數來調整新生代和老年代的比例,優化內存分配。
    • 設置合適的堆中的各個區域比例:通過設置 -XX:SurvivorRatio 參數和 -XX:MaxTenuringThreshold 參數來調整 Eden 區、Survivor 區和老年代的比例,避免過早晉升和過多頻繁的垃圾回收。
    • 設置對象從年輕代進入老年代的年齡值:-XX:InitialTenuringThreshold=7 表示 7 次年輕代存活的對象就會進入老年代。
    • 設置元空間大小:在 JDK 1.8 版本中,元空間的默認大小會根據操作系統有所不同。具體來說,在 Windows 上,元空間的默認大小為 21MB;而在 Linux 上,其默認大小為 24MB。然而如果元空間不足也有可能觸發 Full GC 從而導致程序執行變慢,因此我們可以通過 -XX:MaxMetaspaceSize= 設置元空間的最大容量。

    4.壓測觀測調優后的效果

    JVM 參數調整之后,我們要通過壓力測試來觀察 JVM 參數調整前和調整后的差別,以確認調整后的效果。

    5.應用調優后的配置

    在確認了 JVM 參數調整后的效果滿足需求之后,就可以將 JVM 的參數配置應用與生產環境了。

    課后思考

    除了以上常見的 JVM 調優參數之外,還有沒有其他重要的參數設置呢?

    本文已收錄到我的面試小站 www.javacn.site,其中包含的內容有:Redis、JVM、并發、并發、MySQL、Spring、Spring MVC、Spring Boot、Spring Cloud、MyBatis、設計模式、消息隊列等模塊。

    posted @ 2024-05-21 14:22  磊哥|www.javacn.site  閱讀(286)  評論(4編輯  收藏  舉報
    免费视频精品一区二区_日韩一区二区三区精品_aaa在线观看免费完整版_世界一级真人片
    <bdo id="4g88a"><xmp id="4g88a">
  • <legend id="4g88a"><code id="4g88a"></code></legend>