赞
踩
目录
讲述jvm调优基本策略。
jvm调优目标:更高的吞吐量和更小的延迟。
调整JVM配置之前,先从代码层面考虑,改进性能。
建议选用G1.
G1是不需特殊配置即可提供较好表现性的垃圾回收器。与其改变vm配置,不如从应用本身着手。
老年代空间占用过高,无法继续分配足够空间,导致fullGC,且fullGC很耗时。并发标记阶段执行较长,没能启动空间回收阶段。
log中的关键字 Full GC (Allocation Failure)
gc log显示占用时间 Times: user=xx sys=xx, real=xx secs
user:VM占用
sys:操作系统占用
real:pause占用
内存空间逐渐增加导致
Linux操作系统THP特性导致,disable the Transparent Huge Pages feature
向磁盘文件输出日志时,后台其他任务占用大部分IO带宽,导致log耗时。
Reference Object Processing Takes Too Long
Young-Only Collections Within the Young-Only Phase Take Too Long
G1目标是在吞吐量和延迟之间达到平衡。为了提升吞吐量,不仅要减少pause时间,还要降低pause的频率。
设置最大延迟时间,仍不满足吞吐量要求,则增加年轻代大小
减少并发工作数量,concurrent remembered set updates 并发记忆集更新会占用较多cpu资源
启用large page
提前准备heap空间
设置吞吐量要求
增大年轻代,可提升吞吐量,但会影响敏捷性、停顿时间
设置吞吐量要求
年轻代设置最大延迟时间
年老代调整大小
应用程序导致的问题,进行fix.
内存分配不满足应用足迹,调整heap.
使用默认配置,调节Heap大小.
当Heap调节到某值后,对预期结果已无影响时,调整配置:代占用比例、年轻代最大延迟时间、年轻代吞吐量.
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。