十秒钟搞定全自动 jvm 参数分析
笔者是一名工作 10 年的 java 程序员,现在在某大厂任职架构师,工作中总结了很多关于 jvm 参数的经验。基于这些经验,笔者打造了一款可以全自动分析 jvm 参数并给出改善建议的产品:SimpleJVM,来帮助大家快速解析 jvm 参数,并得到最佳的改善建议。
jvm 为什么那么重要
不管在工作还是面试中,jvm 参数的设置都是 java 开发人员的重点核心工作。
jvm 是面试中的常客,但是对于大多数同学而已,工作中往往没有特别好的高并发、低延迟等项目来得到 jvm 参数设置/调优的机会。
jvm 的配置设置不合理可能会带来以下问题
gc 频繁,导致应用响应时间不理想
浪费资源(cpu 和内存)
无法了解 jvm 工作的情况
....
jvm 为什么那么难学
jvm 的参数非常多,仅 gc 和内存相关的参数就超过 600 个,这么多的参数,真不是每个人都能学得过来的。

自动化诊断工具
笔者基于历史各种公司级、十亿级级流量服务的优化经验,开发了这款 jvm 参数自动化解析的产品 simpleJVM
,只需要输入目前的 jvm 参数,就能自动诊断出来 jvm 参数需要如何调整。如果能提供 jdk 版本的话,还能结合版本来做出更详细的诊断。
simpleJVM 的网址是 https://www.moyucoding.com

输入现有参数
以笔者曾经负责过的一个服务为例,该服务使用 jdk8,参数为-Xms3g -Xmx3g -Xmn2g -Xss1024K -XX:PermSize=256m -XX:MaxPermSize=512m -XX:ParallelGCThreads=20 -XX:+UseConcMarkSweepGC -XX:+UseParNewGC -XX:+UseCMSCompactAtFullCollection
在 jvm 参数重输入对应参数,版本选择 8

分析
点击左下角的分析按钮即可,等待片刻,分析结果就会自动产出。
分析结果分为三个级别,根据影响范围和严重级别来区分。

根据建议产出的最后的 jvm 配置:
-Xms3g -Xmx3g -Xmn2g -Xss512K -XX:+UseConcMarkSweepGC -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/opt/service/usercenter/log/dump.hprof -XX:+ExplicitGCInvokesConcurrent -XX:+PrintGCDetails -XX:+PrintGCDateStamps -Xloggc:/opt/service/usercenter/log/gc-hunteronlinecheck.log
总结
SimpleJVM 是一款能够自动化分析 jvm 参数并给出建议的网站,帮助大家事半功倍解决 jvm 调参问题。
同时我们还提供SimpleGC
产品,能够自动化分析 gc 日志,并结合 AI 给出智能的高效的改善建议 :)
关于产品的使用问题,大家可以在评论区留言
版权声明: 本文为 InfoQ 作者【摸鱼编程】的原创文章。
原文链接:【http://xie.infoq.cn/article/0be264fa120b7b9ad9b176a04】。
本文遵守【CC-BY 4.0】协议,转载请保留原文出处及本版权声明。
评论