JVM內存參數設置

永久存儲區相關參數:

-XX:PermSize  應用服務器啓動時,永久存儲區的初始化內存大小;默認64M。

-XX:MaxPermSize  應用運行中,永久存儲區域的最大值。爲了不消耗擴大JVM永久存儲區分配的開銷,將此參數和-XX:PermSize這兩個值設爲相等。


堆空間相關參數:

-Xms 啓動應用時,JVM堆空間的初始值大小;默認值爲物理內存的1/64,但小於1G。

-Xmx 應用運行中,JVM堆空間的最大值。爲了不消耗擴大JVM堆空間分配的開銷,將此參數設置爲和-Xms相等,考慮到需要開線程,將此值設置爲總內存的80%。默認值是物理內存的1/4,但小於1G。

-Xmn 此參數硬性規定堆空間的新生代空間大小,推薦將此值設置爲堆空間大小的1/4。


上面所列出的JVM參數關係到系統的性能,而其中-XX:PermSize,-XX:MaxPermSize,-Xms,-Xmx,-Xmn這5個參數直接影響到系統的性能,系統是否會內存溢出。


如果程序出現:java.lang.OutOfMemoryError:Java Permanent Space,此乃永久存儲區設置太小,不能滿足系統的需求,此時只需要調整-XX:PermSize和-XX:MaxPermSize大小即可。

如果程序出現:java.lang.OutOfMemoryError:Java heap Space,此乃堆空間不足,只需要調整-Xms和-Xmn大小即可


給大家提供一個內存監控工具:

下載地址


下載完成,配置環境變量:

配置本地的環境變量加入JVMSTAT_JAVA_HOME,配置爲jdk安裝的路徑


配完後,win+R,打開dos命令窗口,輸入jps,查看所有java應用程序列表,第一列爲pid,第二列爲應用名字。



然後:

就會出現當前應用的內存分佈情況(實時動態刷新):

然後,跑應用,如果哪裏報內存溢出了,自己分析。

發佈了33 篇原創文章 · 獲贊 1 · 訪問量 4萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章