01、线上JVM调优
1.主要参数
#JVM x参数
#非标准化参数
-Xint: 解释执行
-Xcomp:第一次使用就编译成本地代码
-Xmixed:混合模式,JVM自己来决定是否编译成本代码
#XX参数分类
格式:-XX:[+-]表示启用或者禁用name属性比如:-XX:+UseConcMarkSweepGC-XX:UseG1GC非Boolean类型格式:-XX: = 表示name属性的值是value比如:-XX:MaxGCPauseMillis=500XX:GCTimeRatio=19不是X参数,而是XX参数
-Xms等价于-XX:InitialHeapSize-Xmx等价于-XX:MaxHeapSize
查看JVM运行时参数
-XX:+PrintFlagsInitial-XX:+PrintFlagsFinal-XX:+UnlockExperimentalIVMOptions解锁实验参数
2.怎么查看项目呢?
这里主要讲Java项目,其它项目不在考虑范围之内。
jps --查看有哪些线程
jps -l --查看详细的线程名称
启动项目:
jinfo -flag MaxHeapSize 22244 --查看jvm参数
jinfo -flags 22244 --查看jvm所有的参数
jstat 查看JVM统计信息--JIT编译jstat -compiler 22244
--类装载jstat -class 22244 1000 10
--垃圾回收jstat -gc 22244 1000 3
#如何导出内存映象文件#内存溢出字段导出-XX:+HeapDumpOnOutOfMemoryError-XX:HeapDumpPath=./
#使用jmap命令手动导出:jmap -dump:format=b,file=heap.hprof 22244
#查看死锁或者线程的状态jstack 22244 > 22244.txt
#使用jdk里面的jv