java 1.6.0_38-b05 vm 20.13-b02 GC优化手记
来源:互联网 发布:哪里能找到工资数据 编辑:程序博客网 时间:2024/04/30 14:34
http://www.54chen.com/java-ee/jvm.html
基础:
业务代码
rose框架(底层是spring)
resin4
java 1.6.0_38-b05
centos
初始配置:
只修改了以下三个值
-Xmx5000M // max的heap的大小。
-Xms5000M // min的heap的大小,就是一初始给的大小,不够先GC,还不够再加,直到max。
-Xmn2000M //young区的大小,一般来讲:heap=Y+O,P是额外的值。Sun推荐Y=heap*(3/8)。
gc情况解读:
# jstat -gcutil 20538 1000 100
S0 S1 E O P YGC YGCT FGC FGCT GCT
0.00 51.96 62.53 73.42 99.93 35830 1554.778 185 1089.488 2644.266
0.00 51.96 69.83 73.42 99.93 35830 1554.778 185 1089.488 2644.266
0.00 51.96 77.75 73.42 99.93 35830 1554.778 185 1089.488 2644.266
0.00 51.96 85.79 73.42 99.93 35830 1554.778 185 1089.488 2644.266
0.00 51.96 92.35 73.42 99.93 35830 1554.778 185 1089.488 2644.266
S0\S1是survivor区,就是没被gc掉的对象,在这两个survivor里来回导来导去,满足条件最后进行O区。
E是Eden区,E+S0+S1=Y。
从jstat的数据看,这个机器大概15s发生一次YGC,很长时间没有FGC了(超过1天以上),而且P区已经99.93%使用了。
各区内存情况解读:
是否需要优化判定:
YGCT/YGC=40ms 且十几秒才一次,健康
FGCT/FGC=5s 但是一天也没几次,业务允许,一般健康可优化。未来可考虑优化为多次FGC减少FGCT的时长。
后续思考:
虽然FGC并不频繁,但因为xmx值比较大,导致了O区相对变大,同时FGC缓慢,考虑从两个方向:1.调整Y区大小,让YGC去到O区的数据更少,让FGC频率更加慢(有可能很难有变化)2.调整整体的大小,让FGC频繁一点点但更加快一点 3.调整FGC的算法,让速度快一点到1秒内来。
对照组结果后续有结论了再来续本文内容。
GC优化永远是最后一项任务。
- java 1.6.0_38-b05 vm 20.13-b02 GC优化手记
- Java GC 调试手记
- Java GC 调试手记
- Java GC 调试手记
- Java GC 调试手记
- Java GC 调试手记
- [Java VM 系列] GC原理学习
- java GC优化
- java GC性能优化
- Full GC分析:设置Java VM参数实现在Full GC前后自动生成Dump
- Minor GC,Major GC,Full GC -- hotspot VM GC讲解
- GC Tuning -GC优化
- Java 性能优化 - Websphere GC日志分析
- Java性能优化:垃圾回收(GC)
- java高级特性和核心优化gc
- GC之--HotSpot VM GC 的种类
- VM之GC篇(gc.h)
- VM ware 安装 Linux 手记
- linux相关线程函数
- 《权威指南》笔记 -- 8.5 、8.6
- ok6410 uboot nandflash移植
- 有关JS截取字符串问题总结
- 利用ShellExecuteEx手动提升用户特权,以管理员权限来运行程序。win7会有UAC弹窗
- java 1.6.0_38-b05 vm 20.13-b02 GC优化手记
- Dubbo Demo
- 1...Numpy for Python Users
- block传值
- 接入图灵机器人实现XMPP
- android关于EditText与其光标
- Linux运维基础采集项
- EditText 动态切换密码 更改为"*"
- 大型网站架构演变和知识体系