工欲善其事必先利其器-JVM相關參數、命令、常用工具

注意:本文不做相關參數、命令、常用工具的演示。

JVM參數

大體上分爲四類:
1.標準參數
就是不會隨着jdk的版本不同而不同。如java -version、java -help 2.-X參數 :
如 java -Xint -version、 java -Xmixed -version
3.-XX參數
-XX:[+/-] :+就是開啓 -就是關閉。比如: -XX:+UseG1GC 開啓G1垃圾收集器
-XX: name=value 比如: -XX:InitialHeapSize=100M 設置堆內存大小爲100MB
4.其他參數
可以看作是對-XX參數的一個縮寫。如:
-Xms100M 等同於 -XX:InitialHeapSize=100M
-Xmx100M
-Xss100

應用場景:
1.開發工具中設置,如IDEA、Eclipse
2.運行jar包的時候:java -XX:+UseG1GC xxx.jar
3.web容器,比如tomcat,可以在腳本中進行設置
3.使用jinfo實時調整某個java進程的參數(參數只有被標記爲manageable的flags可以被實時修改)

JVM命令

(1)jps: 當前的java進程
(2)jinfo: 查看某個java進程目前的參數設置的情況
(3)jstat: 查看java進程統計性能
(4)jstack:查看當前java進程的堆棧信息
(5)jmap:打印出堆轉存儲快照 jmap -heap PID
dump出堆內存相關信息:jmap -dump:format=b,file=heap.hprof PID

常用工具

(1)jconsole
(2)jvisualvm
(3)arthas
(4)mat/perfma:內存相關的信息
(5)gceasy.io/gcviewer

GC優化

就是通過不斷調整,觀察GC日誌的吞吐量和停頓時間,尋找最佳值

如下參數: 使用G1收集器,打印GC的一些信息,並輸出到gc.log 這個文件裏
-XX:+PrintGCDetails -XX:+PrintGCTimeStamps -XX:+PrintGCDateStamps -XX:+UseG1GC -Xloggc:gc.log
導出gc日誌後會發現看不懂,瀏覽器打開gceasy.io,可以在線查看gc.log文件。或者使用gcviewer客戶端查看。

主要就是調整各種參數、垃圾收集器—>查看吞吐量和停頓時間的變量
追求的是高吞吐量,低停頓時間

性能優化指南

在這裏插入圖片描述
<<上一篇:JVM垃圾回收

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