查看進程使用的GC類型

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 &

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