簡體   English   中英

Java PERM等於多少(1.5GB似乎很高)

[英]How much is to much PERM in Java (1.5GB seems high)

我們運行一個正在開發的基於Java的大型應用程序。 似乎每隔3到6個月,我們就必須增加PERM內存的大小,否則我們可能會在應用程序啟動時或聯機后不久出現內存不足的風險。 該應用程序托管在JBoss 4.2和tomcat服務器中。

我們當前的設置是:

-服務器-Xms12G -Xmx12G -XX:MaxPermSize = 1536M -XX:+ UseConcMarkSweepGC -XX:+ CMSIncrementalMode

我可以幫忙,但想知道這是否太糟糕了。

PERM內存似乎在啟動時很快就裝滿了。 使用jstat的90%到99%之間的任何值。

我們的Web應用程序包含30多個單獨的戰爭文件。 在JBoss中,它們被部署為一個300MB +的大文件。

這么大的PERM對我們來說是大型應用程序正常嗎?

那真是個充沛的空間。 如果馬上填滿,則意味着幾乎無法想象的班級數量。 在那30個戰爭文件中的庫中有很多重復項嗎? 通過從更靠近根目錄的公共類加載器(而不是在每個分離的webapp中)加載公共庫,可以節省大量空間。 嘗試在服務器目錄中安裝公用庫。

1.5 GB的開銷來管理12 GB的堆以及類代碼/靜態數據真的如此離譜嗎?

您是否考慮過應用程序中可能存在內存泄漏? 嘗試使用諸如JProfiler或Eclipse MAT之類的探查器工具來分析應用程序的內存使用情況。 我已經看到,簡單的內存泄漏會在一段時間內導致巨大的中斷。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM