JVM优化

文章介绍了JVM优化的一些关键参数,如初始和最大堆内存设置(-Xms,-Xmx),以及G1垃圾收集器的使用。强调了JVM优化应作为最后手段,并提到了在内存溢出时如何配置自动dump。此外,还提及了通过日志、jstack、asyncprofiler等工具进行问题定位和性能分析的方法。
摘要由CSDN通过智能技术生成

JVM优化

在项目启动时加上以下参数:

-Xms8G -Xmx8G -XX:+UseG1GC -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -XX:+PrintGCDateStamps -XX:+PrintHeapAtGC -Xloggc:/gc.log 
java -jar -Xms8G -Xmx8G -XX:+UseG1GC -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -XX:+PrintGCDateStamps -XX:+PrintHeapAtGC -Xloggc:/gc.log jetlinks-standalone.jar

警告

注意堆内存大小请根据自身服务器的实际情况分配,此处分配8G只是示例。

JVM优化是最后的手段,非必要极限使用服务器性能应考虑其他优化手段。

问题定位

建议配置内存溢出时自动dump:-XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=heapdump.hprof

在运行过程中,发生内存溢出,或者cpu过高时.

  1. 查看日志是否有大量的日志输出,如果有,根据日志内容来分析.
  2. 使用jps命令查看进程pid,执行jstack -l [pid].查看是否有被BLOCKED,或者调用栈比较长的线程,根据调用栈分析对应的代码.
  3. 使用async profiler或者Arthas来收集火焰图,分析调用栈耗时情况.
    在本地可以使用Idea提供的Profiler来监控.
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值