jvm調優的常見指令和參數

1.指令

1.jps命令用於查詢正在運行的JVM進程。

2.jstat可以實時顯示本地或者遠程JVM進程中類的裝載、內存、垃圾收集、JIT編譯等數據。

3.jinfo用於查詢當前運行的JVM的屬性和參數值。

4.jmap用於顯示當前Java堆和永久代的詳細信息。

5.jhat用於分析使用jmap生成的dump文件,是JDK自帶的工具。

6.jstack用於生成當前JVM所有線程的快照,線程快照是JVM每一個線程正在執行的方法,目的是定位出線程出現長時間停頓的原因。

2.參數

1.-Xmx:用於指定Java程序的最大堆內存,使用java -Xmx5000M -version判斷當前系統能分配的最大堆內存。

2.-Xms:指定最小堆內存,通常設置成跟最大堆內存一樣,減少GC。

3.-Xmn:設置新生代大小。整個堆內存 = 新生代內存 + 老年代內存,此值對系統性能影響較大,Sun官方推薦設置爲堆的3/8。

4.-Xss:指定線程的最大棧空間。該參數決定了java函數調用的深度,值越大調用深度越深,若值太小,容易發生棧溢出錯誤。

5.-XX:PermSize :指定方法區(永久區)的初始值,默認是物理內存的1/64,Java8永久區移除之後,取而代之的是元數據區,由-XX:MetaspaceSize指定。

6.-XX:MaxPermSize :指定方法區(永久區)的最大值,默認是物理內存的1/4,Java8永久區移除之後,取而代之的是元數據區,由-XX:MaxMetaspaceSize指定。

7.-XX:NewRatio=n:老年代和新生代比值,n=2時,說明老年代和新生代的比值爲2:1。

8.-XX:SurvivorRatio=n:Eden區和Survivor區的比值。n=8時,說明Eden和Survivor比值爲8:1:1,因爲Survivor有兩個(from,to)。

 

參考文章:https://juejin.im/post/5e5c5c52f265da575f4e7558#heading-187

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章