您好,登錄后才能下訂單哦!
1. 整體思路:
Young GC發生的頻率比較頻繁是正常現象,但盡可能讓他的單次執行時間少點
Full GC發生的頻率不應該太高
2. 使用的監控命令:
jps -m -l? ?列出JVM中運行的進程狀態信息(這里可以獲取某個進程的pid, 供后續命令使用)
jstat -gcutil pid 10s 3? ?對堆內存的使用情況、gc信息等進行實時的命令行統計
3. 具體設置參數如下:
-Xms、-Xmx
這兩個參數一定要設置,而且必須設置成相等,不能使用默認值。如果不設置,可能會出現頻繁Full GC、內存泄露。
設置成相等,主要是為了避免每次GC之后重新給堆內存分配大小。
另外,這倆值不要設置的太大。雖然建議堆的最大值設置為可用內存最大值的80%(使用命令free或cat /proc/meminfo查看,實際可用物理內存=free+buffer+cache),但是當設置了80%之后,服務器的內存占用一般都達到了90%以上,所以可以適當降低一點。
-Xmn、-XX:SurvivorRatio
最好不要用-XX:NewRatio,因為同CMS GC一起使用時會失效。
如果不設置此值,不設置CMS GC,那么年輕代和年老代比值大約是1:2
如果不設置此值,設置了CMS GC,那么年輕代會變的很小,年老大占很大
如果Young Generation大小分配不合理或空間比較小,這個時候導致對象很容易進入Old Generation中,比如,如果s0和s1太小,gc之后無法裝下存活的對象,那么就會直接進入年老代中,而Old Generation中回收具體對象的時候速度是遠遠低于Young Generation回收速度。
要考慮年老代和新生代的比例(sun官方建議-Xmn為整個堆的3/8),考慮Eden和survives的比例(默認是8:1:1)
如果不知道該設置多少,可以先按官方要求設置,如果不合適,再進行調整。
是否使用CMS GC。
其他參數,根據具體情況設置,注意,未必設置了之后就會提升性能。不同的應用系統,不同的電腦硬件條件,都可能不一樣。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。