[@倚贤][¥20]如何进行JVM调优,有没有标准化的调优流程可以参考?-问答-阿里云开发者社区-阿里云

开发者社区> 问答> 正文

[@倚贤][¥20]如何进行JVM调优,有没有标准化的调优流程可以参考?

李博 bluemind 2018-12-10 15:55:38 1184

问题来自Java技术沙龙的陈帅
Java技术沙龙报名链接:https://yq.aliyun.com/promotion/796

Java
分享到
取消 提交回答
全部回答(2)
  • 昊蓝
    2019-07-17 23:19:18

    问题发生后,第一时间是快速保留问题现场供后面排查定位,然后尽快恢复服务。保留现场的具体操作:

    打印堆栈信息,命令行: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 thread

    JAVA进程退出

    CPU占用过高

    通常来说,可以用一些常用的命令行来打印堆栈、内存使用分配、打印内存镜像文件来分析,比如jstack、jstat、jmap等。但是某些时刻,还是需要引入更高阶的代码级分析工具(比如btrace)才能定位到具体原因。针对每一种问题,我会依据具体的case来详细说明解决方式。

    0 0
  • 徐雷frank
    2019-07-17 23:19:18

    JVM优化有参考经验方法,因为每个公司系统不同,JVM版本不同,优化的方式也不一样。
    1、首先,在调优JVM之前分析代码。找到问题点,对症下药,解决问题
    2、其次,仔细阅读JVM文档; 理解JVM参数的意义。 例如,-server标志仅在JVM保持驻留并运行一段时间时才有用; -server“关闭”JIT / HotSpot,并且需要通过相同的路径进行多次传递才能启动。 另一方面,-server减慢了JVM的初始执行速度,因为设置时间更长。
    3、JVM优化的网站和书籍参考资料 http://www.javaperformancetuning.com/
    4、借助 VisualGC或者VisualVM,或者JMAP,JStack等工具辅助进行JVM优化。监控内存使用情况,堆栈情况,对象,是否内存泄露等,然后再采取具体措施有针对性的解决问题。

    0 0
添加回答
开发与运维
使用钉钉扫一扫加入圈子
+ 订阅

集结各类场景实战经验,助你开发运维畅行无忧

推荐文章
相似问题
推荐课程