1.监控GC状态 2.分析监控数据并决定是否需要GC调优 3.设置GC类型和内存大小 4.分析GC调优结果
您好,GC调优过程与一般的性能改进流程很相似,您可以参考一下几个步骤进行。
1.监控GC状态
首先需要监控GC状态信息以明确在GC操作过程中对系统的影响。
2.分析监控数据并决定是否需要GC调优
然后通过GC操作状态,对监控结果进行分析,并判断是否有必要进行GC调优。如果分析结果显示GC耗时在0.1-0.3秒以内的话,一般不需要花费额外的时间做GC调优。然而,如果GC耗时达到1-3秒甚至10秒以上,就需要立即对系统进行GC调优。
但是如果你的应用分配了10GB的内存,且不能降低内存容量的话,其实是没办法进行GC调优的。这种情况下,你首先要去思考为什么需要分配这么大的内存。如果只给应用分配了1GB或者2GB内存,当有OutOfMemeoryError发生时,你需要通过堆dump来分析验证内存溢出的原因并进行修复。
注释:
堆dump是把内存情况按一定格式输出到文件,可用于检查Java 内存中的对象和数据情况。可使用JDK中内置的jmap命令创建堆dump文件。创建文件过程中,Java进程会中断,因此不要在正常运行时系统上做此操作。
3.设置GC类型和内存大小
如果决定做GC调优,就需要考虑如何选择GC类型、如何设置内存大小。如果你有多台服务器,可通过为每台服务器设置不同的GC选项并对比不同的表现,这一步很重要。
4.分析GC调优结果
设置GC选项后,至少要收集24小时的GC表现数据,然后就可以着手分析这些数据了。如果足够幸运,通过分析就刚好找到了最合适的GC选项。否则就需要分析GC日志,并分析内存的分配情况。然后通过不同的调整GC类型和内存大小来找到系统的最优选项。
5.如果结果可接受,则对所有服务应用调优选项并停止调优
如果GC结果令人满意,就可以把相应的选项应用到所有服务器并停止GC调优。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。