本文主要是介绍线上问题处理干货(系列二)--如何分析docker Java项目内存泄露和溢出等问题?,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
01、线上JVM调优
1.主要参数
#JVM x参数
#非标准化参数
-Xint: 解释执行
-Xcomp:第一次使用就编译成本地代码
-Xmixed:混合模式,JVM自己来决定是否编译成本代码
#XX参数分类
格式:-XX:[+-]<name>表示启用或者禁用name属性
比如:
-XX:+UseConcMarkSweepGC
-XX:UseG1GC
非Boolean类型
格式:-XX:<name> = <value>表示name属性的值是value
比如:
-XX:MaxGCPauseMillis=500
XX: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
#如何导出内存映象文件
#内存溢出字段导出</
这篇关于线上问题处理干货(系列二)--如何分析docker Java项目内存泄露和溢出等问题?的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!