1.查看進程使用的GC類型
- 查詢看Java程序進程 id
[root@localhost log]# ps -ef |grep java
root 11740 1 1 18:56 pts/0 00:00:39 java -Djava.security.egd=file:/dev/./urandom -jar -server -Xmx8192m -Xms2048m -XX:NewRatio=4 -XX:SurvivorRatio=4 app.jar
root 11847 1 2 18:56 pts/0 00:00:55 java -Djava.security.egd=file:/dev/./urandom -jar -server -Xmx8192m -Xms2048m -XX:NewRatio=4 -XX:SurvivorRatio=4 app.jar
- 查看進程使用的GC類型
使用jinfo –flag UseSerialGC 進程的方式可以定位其使用的gc策略,因爲這些參數都是boolean型的常量,如果使用該種gc策略會出現+號,否則-號。
分別查詢UseSerialGC 、UseParNewGC、UseConcMarkSweepGC、UseParallelGC、UseParallelOldGC
[root@localhost cloud]# jinfo -flag UseSerialGC 11740
-XX:-UseSerialGC
[root@localhost cloud]# jinfo -flag UseParNewGC 11740
-XX:-UseParNewGC
[root@localhost cloud]# jinfo -flag UseConcMarkSweepGC 11740
-XX:-UseConcMarkSweepGC
[root@localhost cloudgame]# jinfo -flag UseParallelGC 11740
-XX:+UseParallelGC
[root@localhost cloud]# jinfo -flag UseParallelOldGC 11740
-XX:+UseParallelOldGC
- 查看服務器java版本
[root@localhost cloud]# java -version
java version "1.8.0_201"
Java(TM) SE Runtime Environment (build 1.8.0_201-b09)
查看java1.8 版本默認垃圾收集器類型
[root@localhost cloud]# java -XX:+PrintCommandLineFlags -version
-XX:InitialHeapSize=128192832 -XX:MaxHeapSize=2051085312 -XX:+PrintCommandLineFlags - XX:+UseCompressedClassPointers -XX:+UseCompressedOops -XX:+UseParallelGC
java version "1.8.0_201"
Java(TM) SE Runtime Environment (build 1.8.0_201-b09)
Java HotSpot(TM) 64-Bit Server VM (build 25.201-b09, mixed mode)
-XX:+UseParallelGC ----表示指定New Generation 使用 parallel collector。此配置僅對年輕代有效。可以同時並行多個垃圾收集線程,但此時用戶線程必須停止。
總結:jdk1.7 默認垃圾收集器Parallel Scavenge(新生代)+Parallel Old(老年代)
jdk1.8 默認垃圾收集器Parallel Scavenge(新生代)+Parallel Old(老年代)
2. 開啓GC日誌
需要啓動java程序中加上如下參數
-XX:+PrintGC 輸出GC日誌
-XX:+PrintGCDetails 輸出GC的詳細日誌
-XX:+PrintGCTimeStamps 輸出GC的時間戳(以基準時間的形式)
-XX:+PrintGCDateStamps 輸出GC的時間戳(以日期的形式,如 2013-05-04T21:53:59.234+0800)
-XX:+PrintHeapAtGC 在進行GC的前後打印出堆的信息
-Xloggc:../logs/gc.log 日誌文件的輸出路徑
例如:
nohup java -Djava.security.egd=file:/dev/./urandom \
-jar -server -Xmx8192m -Xms2048m -XX:NewRatio=4 -XX:SurvivorRatio=4 -XX:+PrintGCDateStamps -XX:+PrintGCDetails - Xloggc:./log/gc.log /data/app-0.0.1-SNAPSHOT.jar > /dev/null 2>&1 &