JVM 设置与调优

本文介绍JVM调优原则,包括内存配置的最佳实践,如Young区与Old区比例调整,Survivor区的作用及配置建议。同时分享了具体的JVM参数配置案例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

JVM调优
1, 不是分配的内存越大越好, 内存越大full gc时处理的数据就越多,阻塞的时间就越长。
2, 如果系统小对象多,Young区最好大一点
3, 如果系统session对象多, Old区要大一点
4, 如果有大量的对象没有进过9次Young区迭代而是因为suvivor区不够了就进入old区时,需要调整SurvivorRatio 的比例
5, 有时需要导出head dump文件分析系统中有多少个对象,变化的趋势如何

[url]http://www.cnblogs.com/redcreen/archive/2011/05/04/2037057.html[/url]

-----------------
JVM内存区域分为
栈内存 (虚拟机栈,本地方法栈, 计数器)
堆内存 (GC堆, 方法区)

方法区-即永久代, 存放class相关信息,常量池等。

GC堆分为 young区 old区 survivor区

垃圾收集算法
1, 复制算法 young区 默认8:1的比例 复制到survivor区, 新生代中的对象98%都是朝生夕灭的。

2, 标记-整理算法 old区 为了避免大量的不连续的内存碎片, 回收后将所有存活对象向一段移动。

垃圾收集器
1, Serial + Serial Old 单线程的 适用于client模式
2, ParNew + CMS 多线程版, 适用于server模式
3, Parallel 吞吐量优先 , 适合在后台运算而不需要太多交互的任务
4, G1 收集器, JDK7出来的新的收集器

CMS
初始标记 -- 并发标记 -- 重新标记 -- 并发清除

进入old区的方式
1, minorGC时 survivor 放不下
2, 大对象直接进入old区 需设置大小
3, 长期存活的对象 默认15次minorGC 还存活的


附HPSC的JVM配置

物理内存64G 32个CPU HPUX
共有4个instance,
每个instance占有7G的内存


-d64
-XX:MaxPermSize=768m
-XX:+PrintGC
-XX:+PrintGCDetails
-XX:+PrintGCTimeStamps
-XX:+UseConcMarkSweepGC
-XX:+UseParNewGC
-Xms7g
-Xmx7g
-XX:PermSize=768m
-XX:NewSize=2g //年轻代
-XX:MaxNewSize=2g //
-XX:CMSInitiatingOccupancyFraction=70
-Xverbosegc:file=./servers/producerA1.1/logs/gc.log
-XX:ParallelCMSThreads=4
-XX:CMSMarkStackSize=512M
-XX:CMSMarkStackSizeMax=512M
-XX:+CMSClassUnloadingEnabled
-XX:+UseCMSInitiatingOccupancyOnly
-XX:MaxTenuringThreshold=9
-XX:SurvivorRatio=6
-Dappserver.home.dir=/opt/sasuapps/itrc/domain/itrc/servers/producerA1.1
-Dfile.encoding=UTF-8
-Djavax.net.ssl.trustStore=/opt/bea/security/trustedCAs.jks
-Djava.util.logging.config.file=/opt/sasuapps/itrc/openportal1/config/openportal_logging.properties
-DLOG_ROOT=/opt/sasuapps/itrc/logs/producerA1.1
-Dcom.sun.org.apache.xml.internal.dtm.DTMManager=com.sun.org.apache.xml.internal.dtm.ref.DTMManagerDefault
-Dcom.sun.management.jmxremote.port=40002
-Dcom.sun.management.jmxremote.password.file=/opt/sasuapps/itrc/perf/jmxremote.password
-Dcom.sun.management.jmxremote.ssl=false
-Dsbs.lifecycle=PROD
-Dsun.net.inetaddr.ttl=30
-Djava.awt.headless=true
-Dsbs.core.keystore.disable=true
-Dhttp.proxyHost=web-proxy.corp.hp.com
-Dhttp.proxyPort=8080
-Dhttp.nonProxyHosts=localhost|*.austin.hp.com|*.atlanta.hp.com|*.houston.hp.com
-Dehcache.disk.store.dir=/opt/sasuapps/itrc/global_resources/portlet/data/ehcache/producerA1.1
-d64


Producer 物理机器和instance的分布

[img]http://dl2.iteye.com/upload/attachment/0097/0281/7ae3b096-4caa-3ce9-8bd0-d683980fc62b.jpg[/img]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值