溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

PermSize 設(shè)置過(guò)小對(duì)性能的影響(OutOfMemoryError:PermGen spac)

發(fā)布時(shí)間:2020-07-26 20:19:53 來(lái)源:網(wǎng)絡(luò) 閱讀:2199 作者:zhouanyafu 欄目:軟件技術(shù)

【現(xiàn)象】:應(yīng)用更新新版本后,其中一臺(tái)機(jī)出現(xiàn)了較多的重啟現(xiàn)象。

【原因分析】:

分析應(yīng)用日志,發(fā)現(xiàn)有OutOfMemoryError:PermGen space,此報(bào)錯(cuò)說(shuō)明 PermSize 設(shè)置過(guò)小,沒(méi)有足夠的內(nèi)存使用。


【解決方案】:

修改JVM配置,配置上

<jvm-arg>-XX:PermSize=128m</jvm-arg>

<jvm-arg>-XX:MaxPermSize=128m</jvm-arg>


說(shuō)明:JVM的Perm區(qū)主要用于存放Class和Meta信息的,Class在被Loader時(shí)就會(huì)被放到PermGen space,這個(gè)區(qū)域成為年老代,GC在主程序運(yùn)行期間不會(huì)對(duì)年老區(qū)進(jìn)行清理,默認(rèn)是64M大小的,當(dāng)程序需要加載的對(duì)象比較多時(shí),超過(guò)64M就會(huì)報(bào)這部分內(nèi)存溢出了,需要加大內(nèi)存分配,一般128m足夠。

還有一種直接報(bào)java.lang.OutOfMemoryError的,這種情況一般是jvm最大和最小內(nèi)存分配配置有問(wèn)題,最小內(nèi)存分配過(guò)小,GC頻率高,降低jvm性能,但最小內(nèi)存也不能無(wú)限增大,最小內(nèi)存增大,GC頻率低了,但其執(zhí)行時(shí)間會(huì)加長(zhǎng),GC執(zhí)行期間,java程序是不處理其他請(qǐng)求的,因此將最小內(nèi)存xms和最大內(nèi)存xmx設(shè)置一樣大,xmn值設(shè)置約為xmx的1/3.


向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI