導航:首頁 > 操作系統 > linux的permgenspace

linux的permgenspace

發布時間:2025-06-05 04:29:13

1. Linux裡面JVM內存怎麼設置

jar包啟動時指定對應參數,比如我的工程啟動命令就是這樣的

啟動命令,打碼部分為工程名

常見參數如下

1.-Xms:初始堆大小。只要啟動,就佔用的堆大小。

2.-Xmx:最大堆大小。java.lang.OutOfMemoryError:Java heap這個錯誤可以通過配置-Xms和-Xmx參數來設置。

3.-Xss:棧大小分配。棧是每個線程私有的區域,通常只有幾百K大小,決定了函數調用的深度,而局部變數、參數都分配到棧上。

當出現大量局部變數,遞歸時,會發生棧空間OOM(java.lang.StackOverflowError)之類的錯誤。

4.XX:NewSize:設置新生代大小的絕對值。

5.-XX:NewRatio:設置年輕代和年老代的比值。比如設置為3,則新生代:老年代=1:3,新生代占總heap的1/4。

6.-XX:MaxPermSize:設置持久代大小。

java.lang.OutOfMemoryError:PermGenspace這個OOM錯誤需要合理調大PermSize和MaxPermSize大小。

7.-XX:SurvivorRatio:年輕代中Eden區與兩個Survivor區的比值。注意,Survivor區有form和to兩個。比如設置為8時,那麼eden:form:to=8:1:1。

8.-XX:HeapDumpOnOutOfMemoryError:發生OOM時轉儲堆到文件,這是一個非常好的診斷方法。

9.-XX:HeapDumpPath:導出堆的轉儲文件路徑。

10.-XX:OnOutOfMemoryError:OOM時,執行一個腳本,比如發送郵件報警,重啟程序。後面跟著一個腳本的路徑。

2. Linux裡面JVM內存怎麼設置

一、堆內存相關配置

設置堆初始值
指令1:-Xms2g
指令2:-XX:InitialHeapSize=2048m

設置堆區最大值
指令1:`-Xmx2g`
指令2: -XX:MaxHeapSize=2048m

縮小堆內存的時機
-XX:MaxHeapFreeRatio=70//堆內存使用率大於70時擴張堆內存,xms=xmx時該參數無效,默認值70

擴張堆內存的時機
-XX:MinHeapFreeRatio=40//堆內存使用率小於40時縮減堆內存,xms=xmx時該參數無效,默認值40

新生代內存配置
指令1:-Xmn512m
指令2:-XX:MaxNewSize=512m

2個survivor區和Eden區大小比率
指令:-XX:SurvivorRatio=6 //S區和Eden區佔新生代比率為1:6,兩個S區2:6

新生代和老年代的佔比
-XX:NewRatio=4 //表示新生代:老年代 = 1:4 即老年代占整個堆的4/5;默認值=2

二、方法區內存配置常用參數

初始化的Metaspace大小,
-XX:MetaspaceSize :

Metaspace最大值
-XX:MaxMetaspaceSize

三、線程棧內存配置常用參數
每個線程棧最大值
指令1:-Xss256k

指令2:-XX:ThreadStackSize=256k
注意:
棧設置太大,會導致線程創建減少。
棧設置小,會導致深入不夠,深度的遞歸會導致棧溢出。
建議棧深度設置在3000-5000
四、配置垃圾收集器
Serial垃圾收集器(新生代)
開啟:-XX:+UseSerialGC
關閉:-XX:-UseSerialGC
//新生代使用Serial 老年代則使用SerialOld
ParNew垃圾收集器(新生代)
開啟 -XX:+UseParNewGC
關閉 -XX:-UseParNewGC
//新生代使用功能ParNew 老年代則使用功能CMS
Parallel Scavenge收集器(新生代)
開啟 -XX:+UseParallelOldGC
關閉 -XX:-UseParallelOldGC
//新生代使用功能Parallel Scavenge 老年代將會使用Parallel Old收集器
ParallelOl垃圾收集器(老年代)
開啟 -XX:+UseParallelGC
關閉 -XX:-UseParallelGC
//新生代使用功能Parallel Scavenge 老年代將會使用Parallel Old收集器
CMS垃圾收集器(老年代)
開啟 -XX:+UseConcMarkSweepGC
關閉 -XX:-UseConcMarkSweepGC

G1垃圾收集器
開啟 -XX:+UseG1GC
關閉 -XX:-UseG1GC

五、GC策略配置
GC並行執行線程數
-XX:ParallelGCThreads=16
新生代可容納的最大對象
-XX:PretenureSizeThreshold=1000000 //大於此值的對象直接會分配到老年代,設置為0則沒有限制。 //避免在Eden區和Survivor區發生大量的內存復制,該參數只對Serial和ParNew收集器有效,Parallel Scavenge並不認識該參數
進入老年代的GC年齡
進入老年代最小的GC年齡
-XX:InitialTenuringThreshol=7 //年輕代對象轉換為老年代對象最小年齡值,默認值7,對象在堅持過一次Minor GC之後,年齡就加1,每個對象在堅持過一次Minor GC之後,年齡就增加1

進入老年代最大的GC年齡
-XX:MaxTenuringThreshold=15 //年輕代對象轉換為老年代對象最大年齡值,默認值15

六、GC日誌信息配置
配置GC文件路徑
-Xloggc:/data/gclog/gc.log//固定路徑名稱生成 -Xloggc:/home/GCEASY/gc-%t.log //根據時間生成
滾動生成日誌
日誌文件達到一定大小後,生成另一個文件。須配置Xloggc
開啟 -XX:+UseGCLogFileRotation
關閉 -XX:-UseGCLogFileRotation

-XX:NumberOfGCLogFiles=4 //滾動GC日誌文件數,默認0,不滾動 -XX:GCLogFileSize=100k //GC文件滾動大小,需配置UseGCLogFileRotation,設置為0表示僅通過jcmd命令觸發

閱讀全文

與linux的permgenspace相關的資料

熱點內容
程序員看同事 瀏覽:226
重構商業模式pdf 瀏覽:420
革命與反革命pdf 瀏覽:390
wdk使用什麼編譯器 瀏覽:408
金杯海獅空調壓縮機 瀏覽:505
lol壓縮說的話 瀏覽:391
先打包再編譯 瀏覽:413
單片機定時器如何使用 瀏覽:950
銀錢包安卓手機怎麼下載 瀏覽:504
如何把加密的wifi解密 瀏覽:595
app貸超市平台合作哪裡去找 瀏覽:320
歐陸風雲游戲文件夾怎麼恢復 瀏覽:787
程序員請婚假卻被開除完整版 瀏覽:55
程序員修復游戲 瀏覽:868
沒有倒直角命令怎麼辦 瀏覽:159
天仙pdf 瀏覽:760
見證取樣app在哪裡注冊 瀏覽:188
網狀解壓球裡面的珠子是泡大珠嗎 瀏覽:504
愛拍小潮的伺服器地址 瀏覽:846
小米鎖如何用2個app操作 瀏覽:668