系统调试命令
jps
查看系统当前运行的java程序
jcmd
查看java进程
jstack
线程堆栈分析工具
jstack pid
jmap
输出所有内存中对象的工具,生成堆 dump文件
jmap <option> pid
-histo[:live] 显示堆中对象的统计信息
-dump:format=b,file=/root/heap.bin 生成堆 dump 文件
jhat
用来分析java堆的命令,以html形式展示
jhat 堆文件
jinfo
查看正在运行的 java 应用程序扩展参数
jinfo [option] <pid>
jinfo -flag [+|-] <name> 开启或关闭参数
jstat
jstat - Monitors Java Virtual Machine (JVM) statistics ,java虚拟机统计监控工具
jstat -<option> [-t] [-h<lines>] <vmid> [<interval>(统计周期) [<count>(显示次数)]]
jstat -options
-class 加载的类信息
-compiler 编译器信息
-gc GC 堆相关信息 MC:元数据空间 CCSC:压缩类空间,用于指针压缩
-gccapacity
-gccause GC原因
-gcmetacapacity 元数据信息
-gcnew 新生代信息
-gcnewcapacity
-gcold 老年代信息
-gcoldcapacity
-gcutil
-printcompilation 输出 JIT 编译的方法信息
基础参数
以-XX:、-X和-开头,本质上-和-X只是简写,最终会转换为-XX:
参数 | 含义 |
---|---|
-XX:+PrintVMOptions | 打印设置过的JVM参数 |
-Xms1024m | 等同于-XX:InitialHeapSize=1024m,设置初始堆大小 |
-Xmx1536m | 等同于 -XX:MaxHeapSize=1536m,设置堆最大大小 |
-Xmn200m | 新生代大小 |
-Xss1m | 栈大小,默认1m |
-XX:SurvivorRatio=8 | eden区所占大小比例,默认8:1:1 |
-XX:NewRatio=2 | 新生代和老年代的比例,老:新=2:1 |
-XX:MetaspaceSize | 元数据空间初始大小 |
-XX:MaxMetaspaceSize | 元数据空间最大大小 |
日志 | |
-verbose:gc | 等同于-XX:+PrintGC,打印GC日志 |
-XX:ErrorFile | 致命错误日志路径 |
-Xloggc | 活动日志路径 |
溢出 | |
-XX:+HeapDumpOnOutOfMemoryError | 当发生内存溢出时记录堆快照 |
-XX:HeapDumpPath | 堆快照存放路径 |
收集器 | |
-XX:+UseParallelGC | JDK 8 server 模式下的默认设置 |
-XX:+UseG1GC | 使用 G1 垃圾收集器 |
-XX:+UseConcMarkSweepGC | 使用CMS收集器 |
其他 | |
-ea | 开启断言assert |
-XX:+OmitStackTraceInFastThrow | 省略异常栈信息从而快速抛出 |
-XX:CICompilerCount | 最大并行编译数,默认2 |
-XX:SoftRefLRUPolicyMSPerMB | 允许SoftReference对象存活多久,与空闲时间相乘 |
-XX:ReservedCodeCacheSize | 代码缓存,默认240m |