jvm引數配置
JVM引數說明與配置
引數名與引數說明
-server 啟用能夠執行優化的編譯器, 顯著提高伺服器的效能,但使用能夠執行 優化的編譯器時,伺服器的預備時間將會較長。生產環境的伺服器強烈推薦設定 此引數。
-Xss 單個執行緒堆疊大小值;JDK5.0 以後每個執行緒堆疊大小為1M,以前每個執行緒堆疊大小為256K。在相同實體記憶體下,減小這個值能生成更多的執行緒。但是作業系統對一個程式內的執行緒數還是有限制的,不能無限生成,經驗值在 3000~5000 左右。
-XX:+UseParNewGC 用來設定年輕代為併發收集【多CPU】,如果你的伺服器 有多個CPU,你可以開啟此引數;開啟此引數,多個CPU 可併發進行垃圾回收,可提高垃圾回收的速度。此引數和+UseParallelGC,-XX:ParallelGCThreads 搭配使用。
+UseParallelGC 選擇垃圾收集器為並行收集器。此配置僅對年輕代有效。即上述配置下,年輕代使用併發收集,而年老代仍舊使用序列收集。可提高系統的吞吐量。
-XX:ParallelGCThreads :年輕代並行垃圾收集的前提下(對併發也有效果)的執行緒數,增加並行度,即:同時多少個執行緒一起進行垃圾回收。此值最好配置與處理器數目相等。
永久儲存區相關引數:
引數名引數說明
-Xnoclassgc 每次永久儲存區滿了後一般GC 演算法在做擴充套件分配記憶體前都會觸發一次FULL GC,除非設定了-Xnoclassgc。
-XX:PermSize 應用伺服器啟動時,永久儲存區的初始記憶體大小。
-XX:MaxPermSize 應用執行中,永久儲存區的極限值。為了不消耗擴大JVM 永久儲存區分配的開銷,將此引數和-XX:PermSize 這個兩個值設為相等。
堆空間相關引數
引數名引數說明
-Xms 啟動應用時,JVM 堆空間的初始大小值。
-Xmx 應用執行中,JVM 堆空間的極限值。為了不消耗擴大JVM 堆控制元件分配的開銷,將此引數和-Xms 這個兩個值設為相等,考慮到需要開執行緒,講此值設定為總記憶體的80%。
-Xmn 此引數硬性規定堆空間的新生代空間大小,推薦設為堆空間大小的1/4。
上面所列的JVM 引數關係到系統的效能,而其中-XX:PermSize,-XX:MaxPermSize,
-Xms,-Xmx 和-Xmn 這5 個引數更是直接關係到系統的效能, 系統是否會出現記憶體溢位。
-XX:PermSize 和-XX:MaxPermSize 分別設定應用伺服器啟動時,永久儲存區的初始大小和極限大小;在生成環境中強烈推薦將這個兩個值設定為相同的值,以避免分配永久儲存區的開銷,具體的值可取系統“疲勞測試”獲取到的永久儲存區的極限值;如果不進行設定
-XX:MaxPermSize 預設值為64M,一般來說系統的類定義檔案大小都會超過這個預設值。
-Xms 和-Xmx 分別是伺服器啟動時,堆空間的初始大小和極限值。-Xms 的預設值是實體記憶體的1/64 但小於1G,-Xmx 的預設值是實體記憶體的1/4 但小於1G.在生產環境中這些預設值是肯定不能滿足我們的需要的。也就是你的伺服器有8g 的記憶體,不對JVM 引數進行設定優化,應用伺服器啟動時還是按預設值來分配和約束JVM 對記憶體資源的使用,不會充分的利用所有的記憶體資源。
到此我們就不難理解上文提到的“我的伺服器有8g 記憶體,系統也就100M 左右,居然出現記憶體溢位”這個“怪現象”了。在上文我曾提到“永久儲存區溢(java.lang.OutOfMemoryError: Java Permanent Space)”和“JVM 堆空間溢位(java.lang.OutOfMemoryError: Java heap space)”這兩種溢位錯誤。現在大家都知道答案了:“永久儲存區溢位(java.lang.OutOfMemoryError: Java Permanent Space)”乃是永久儲存區設定太小,不能滿足系統需要的大小,此時只需要調整-XX:PermSize 和-XX:MaxPermSize 這兩個引數即可。“JVM 堆空間溢位(java.lang.OutOfMemoryError: Java heap space)”錯誤是JVM 堆空間 不足,此時只需要調整-Xms 和-Xmx 這兩個引數即可。
引數名與引數說明
-server 啟用能夠執行優化的編譯器, 顯著提高伺服器的效能,但使用能夠執行 優化的編譯器時,伺服器的預備時間將會較長。生產環境的伺服器強烈推薦設定 此引數。
-Xss 單個執行緒堆疊大小值;JDK5.0 以後每個執行緒堆疊大小為1M,以前每個執行緒堆疊大小為256K。在相同實體記憶體下,減小這個值能生成更多的執行緒。但是作業系統對一個程式內的執行緒數還是有限制的,不能無限生成,經驗值在 3000~5000 左右。
-XX:+UseParNewGC 用來設定年輕代為併發收集【多CPU】,如果你的伺服器 有多個CPU,你可以開啟此引數;開啟此引數,多個CPU 可併發進行垃圾回收,可提高垃圾回收的速度。此引數和+UseParallelGC,-XX:ParallelGCThreads 搭配使用。
+UseParallelGC 選擇垃圾收集器為並行收集器。此配置僅對年輕代有效。即上述配置下,年輕代使用併發收集,而年老代仍舊使用序列收集。可提高系統的吞吐量。
-XX:ParallelGCThreads :年輕代並行垃圾收集的前提下(對併發也有效果)的執行緒數,增加並行度,即:同時多少個執行緒一起進行垃圾回收。此值最好配置與處理器數目相等。
永久儲存區相關引數:
引數名引數說明
-Xnoclassgc 每次永久儲存區滿了後一般GC 演算法在做擴充套件分配記憶體前都會觸發一次FULL GC,除非設定了-Xnoclassgc。
-XX:PermSize 應用伺服器啟動時,永久儲存區的初始記憶體大小。
-XX:MaxPermSize 應用執行中,永久儲存區的極限值。為了不消耗擴大JVM 永久儲存區分配的開銷,將此引數和-XX:PermSize 這個兩個值設為相等。
堆空間相關引數
引數名引數說明
-Xms 啟動應用時,JVM 堆空間的初始大小值。
-Xmx 應用執行中,JVM 堆空間的極限值。為了不消耗擴大JVM 堆控制元件分配的開銷,將此引數和-Xms 這個兩個值設為相等,考慮到需要開執行緒,講此值設定為總記憶體的80%。
-Xmn 此引數硬性規定堆空間的新生代空間大小,推薦設為堆空間大小的1/4。
上面所列的JVM 引數關係到系統的效能,而其中-XX:PermSize,-XX:MaxPermSize,
-Xms,-Xmx 和-Xmn 這5 個引數更是直接關係到系統的效能, 系統是否會出現記憶體溢位。
-XX:PermSize 和-XX:MaxPermSize 分別設定應用伺服器啟動時,永久儲存區的初始大小和極限大小;在生成環境中強烈推薦將這個兩個值設定為相同的值,以避免分配永久儲存區的開銷,具體的值可取系統“疲勞測試”獲取到的永久儲存區的極限值;如果不進行設定
-XX:MaxPermSize 預設值為64M,一般來說系統的類定義檔案大小都會超過這個預設值。
-Xms 和-Xmx 分別是伺服器啟動時,堆空間的初始大小和極限值。-Xms 的預設值是實體記憶體的1/64 但小於1G,-Xmx 的預設值是實體記憶體的1/4 但小於1G.在生產環境中這些預設值是肯定不能滿足我們的需要的。也就是你的伺服器有8g 的記憶體,不對JVM 引數進行設定優化,應用伺服器啟動時還是按預設值來分配和約束JVM 對記憶體資源的使用,不會充分的利用所有的記憶體資源。
到此我們就不難理解上文提到的“我的伺服器有8g 記憶體,系統也就100M 左右,居然出現記憶體溢位”這個“怪現象”了。在上文我曾提到“永久儲存區溢(java.lang.OutOfMemoryError: Java Permanent Space)”和“JVM 堆空間溢位(java.lang.OutOfMemoryError: Java heap space)”這兩種溢位錯誤。現在大家都知道答案了:“永久儲存區溢位(java.lang.OutOfMemoryError: Java Permanent Space)”乃是永久儲存區設定太小,不能滿足系統需要的大小,此時只需要調整-XX:PermSize 和-XX:MaxPermSize 這兩個引數即可。“JVM 堆空間溢位(java.lang.OutOfMemoryError: Java heap space)”錯誤是JVM 堆空間 不足,此時只需要調整-Xms 和-Xmx 這兩個引數即可。
相關文章
- 常用的jvm配置引數 :永久區引數配置JVM
- tomcat jvm 引數配置TomcatJVM
- JVM記憶體引數配置JVM記憶體
- 全面輸出JVM配置引數JVM
- 檢視JVM預設配置引數JVM
- 深入理解JVM(三)——配置引數JVM
- 一個效能較好的JVM引數配置JVM
- 常用JVM引數JVM
- jvm的記憶體引數配置(skycto JEEditor)JVM記憶體
- JDK1.8 JVM生產環境引數配置JDKJVM
- JVM面試問題系列:JVM 配置常用引數和常用 GC 調優策略JVM面試GC
- JVM引數以及用法JVM
- JVM記憶體引數詳解及其配置調優JVM記憶體
- Java虛擬機器(JVM)引數配置說明薦Java虛擬機JVM
- 容器化環境中,JVM最佳引數配置實踐JVM
- 檢視JVM預設引數及微調JVM啟動引數JVM
- JVM 引數調優(qbit)JVM
- JVM常用調優引數JVM
- JVM實用引數系列JVM
- JVM引數分享 OmitStackTraceInFastThrowJVMMITAST
- JVM常見引數設定JVM
- JVM引數設定大氣JVM
- 實用 JVM 引數總結JVM
- oracle引數配置Oracle
- JavaWeb引數配置JavaWeb
- 檢視JVM執行時引數JVM
- Windows 下修改Tomcat jvm引數WindowsTomcatJVM
- 【7】JVM引數說明和分析JVM
- java--jvm啟動的引數JavaJVM
- JVM 引數翻譯漢化解釋JVM
- JVM入門(JVM引數詳解和常用命令)JVM
- 從記憶體洩露、記憶體溢位和堆外記憶體,JVM優化引數配置引數記憶體洩露記憶體溢位JVM優化
- jvm-All日誌啟動引數JVM
- [Java]jvm引數選項中文文件JavaJVM
- Ceph配置引數分析
- Oracle rman 配置引數Oracle
- ORACLE 配置event引數Oracle
- mosquitto 引數配置UI