[@倚贤][¥20]如何进行JVM调优,有没有标准化的调优流程可以参考?
问题发生后,第一时间是快速保留问题现场供后面排查定位,然后尽快恢复服务。保留现场的具体操作:打印堆栈信息,命令行:jstack -l 'java进程PID'打印内存镜像,命令行:jmap -dump:format=b,file=hprof 'java进程PID'生成core文件,命令行:gcore 'java进程PID'保留gc日志文件保留业务日志文件查看JAVA堆内存运行分配:命令行:jstat -gcutil 'java进程PID' 1000完成以上操作后,尽快重启JAVA进程或回滚,恢复服务。当应用系统运行缓慢,页面加载时间变长,后台长时间无影响时,都可以参考以下归类的解决方法。绝大部分的JAVA程序运行时异常都是Full GC、OOM(java.lang.OutOfMemoryError)、线程过多。主要分这么几大类:持续发生Full GC,但是系统不抛出OOM错误堆内存溢出:java.lang.OutOfMemoryError:Java heap space线程过多:java.lang.OutOfMemoryError:unable to create new native threadJAVA进程退出CPU占用过高通常来说,可以用一些常用的命令行来打印堆栈、内存使用分配、打印内存镜像文件来分析,比如jstack、jstat、jmap等。但是某些时刻,还是需要引入更高阶的代码级分析工具(比如btrace)才能定位到具体原因。针对每一种问题,我会依据具体的case来详细说明解决方式。
赞0
踩0