Linux環境查看JVM相關參數命令


Linux環境查看JVM相關參數命令

相對不穩定
主要用於JVM調優和Debug
XX參數分類:
1、Boolean類型
格式: -XX:[+-]<name> 表示啟用或者禁用name屬性
 比如: -XX:+UseConcMarkSweepGC
    -XX:UseG1GC

2、非Boolean類型
格式:  -XX:<name>=<value> 表示name屬性的值是value
比如:-XX:MaxGCPauseMillis=500
     XX:GCTimeRatio=19

3、 -Xmx -Xms
不是X參數,而是XX參數
-Xms等價於-XX:InitialHeapSize
-Xmx等價於-XX:MaxHeapSize

3    JVM參數查看
3.1    查看JVM運行時參數
-XX:+PrintFlagsInitial
-XX:+PrintFlagsFinal
-XX:+UnlockExperimentalVMOptions //解鎖實驗參數
-XX:+UnlockDiagnosticVMOptions //解鎖診斷參數
-XX:+PrintCommandLineFlags //打印命令行參數

-XX:+UseSerialGC,虛擬機運行在Client模式下的默認值,Serial+Serial Old。
-XX:+UseParallelGC,虛擬機運行在Server模式下的默認值,Parallel Scavenge+Serial Old(PS Mark Sweep)。
-XX:+UseParNewGC,ParNew+Serial Old,在JDK1.8被廢棄,在JDK1.7還可以使用。
-XX:+UseParallelOldGC,Parallel Scavenge+Parallel Old。
-XX:+UseConcMarkSweepGC,ParNew+CMS+Serial Old。
-XX:+UseG1GC,G1+G1,只支持JDK1.7 14update以上

java -XX:+PrintCommandLineFlags -version //查看jvm默認的垃圾回收器

3.2    參數使用
java -XX:+PrintFlagsInitial -version > PrintFlagsInitial.txt  //這個命令的值很多,保存到文件中
java -XX:+PrintFlagsFinal -version > PrintFlagsFinal.txt  

3.3    jps 查看java進程
jps  //查看java進程
jps -l  //顯示完整的類名

3.4    查看正在運行的JVM參數

jinfo -flags pid   //查看設置過值的參數
jinfo -flag InitialHeapSize pid   //查看初始堆內存
jinfo -flag MaxHeapSize pid   //查看最大堆內存
jinfo -flag PermSize pid     //查看初始分配的非堆內存
jinfo -flag MaxPermSize pid     //查看最大允許分配的非堆內存
jinfo -flag NewSize pid     //查看年輕代初始內存
jinfo -flag MaxNewSize pid     //查看年輕代最大內存
jinfo -flag NewRatio pid     //查看年輕代與年老代的比值
jinfo -flag SurvivorRatio pid     //查看年輕代中Eden區與Survivor區的比值
jinfo -flag MaxTenuringThreshold pid  //查看對象如果在Survivor區移動了N次還沒有被垃圾回收就進入年老代

jinfo -flag UseSerialGC pid   //查看串行收集器
jinfo -flag UseParallelGC pid   //查看並行收集器
jinfo -flag UseParNewGC pid   //查看並行收集器
jinfo -flag UseParallelOldGC pid   //查看並行收集器
jinfo -flag UseConcMarkSweepGC pid   //查看CMS回收器
jinfo -flag UseG1GC pid  //查看G1回收器
jinfo -flag PrintGCDetails pid   //查看是否打印GC日志

查看JVM內存配置

jmap -heap pid > 1.txt  //參數較多,保存到文件 


4    JVM常用工具
4.1    jps
jps  //查看java進程
jps -l  //顯示完整的類名

4.2    jinfo
jinfo -flag InitialHeapSize pid   //查看初始堆內存
jinfo -flag MaxHeapSize pid   //查看最大堆內存
jinfo -flag PermSize pid     //查看初始分配的非堆內存
jinfo -flag MaxPermSize pid     //查看最大允許分配的非堆內存
jinfo -flags pid   //查看設置過值的參數
jinfo -flag UseConcMarkSweepGC pid   //查看垃圾回收器
jinfo -flag UseG1GC pid   //查看垃圾回收器
jinfo -flag UseParallelGC pid   //查看垃圾回收器

4.3 jmap

jmap -heap pid > 1.txt

5    Tomcat調優
5.1    Linux下修改TomcatJVM內存大小
要添加在tomcat 的bin 下catalina.sh 里,位置cygwin=false前。
# OS specific support.  $var _must_ be set to either true or false.
JAVA_OPTS="-Xms256m -Xmx512m -Xss1024K -XX:PermSize=128m -XX:MaxPermSize=256m" 
cygwin=false


5.2    windows下修改Tomcat JVM內存大小
5.2.1 解壓版本的Tomcat , 要通過startup.bat啟動tomcat才能加載配置

要添加在tomcat 的bin 下catalina.bat 里

rem Guess CATALINA_HOME if not defined
set CURRENT_DIR=%cd%后面添加

set JAVA_OPTS=-Xms1024m -Xmx1024m -Xmn=256m -XX:PermSize=128M -XX:MaxPermSize=128m -Djava.awt.headless=true  -XX:+UseSerialGC -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -Xloggc:D:\log\jvm\gc.log

 

設置參數

-server -Xmx64m -Xms16m -Xmn32m -XX:MetaspaceSize=32m -Xss256k 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM