ImageVerifierCode 换一换
格式:DOCX , 页数:9 ,大小:19.26KB ,
资源ID:6295566      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/6295566.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(JVM配置参数说明.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

JVM配置参数说明.docx

1、JVM配置参数说明JVM配置参数说明,参考N多文章和一些书籍总结如下: 参数说明默认值 生产环境约定 内存管理策略-Xms/-Xmx 定义YOUNG+OLD段的总尺寸,ms为JVM启动时YOUNG+OLD的内存大小;mx为最大可占用的YOUNG+OLD内存大小。 默认是物理内存的1/64但小于1G。 在用户生产环境上一般将这两个值设为相同,以减少运行期间系统在内存申请上所花的开销。 -Xmn 设置younggeneration的内存大小。 整个堆大小=年轻代大小 + 年老代大小。所以增大年轻代后,将会减小年老代大小。此值对系统性能影响较大,Sun官方推荐配置为整个堆的3/8。 -XX:Perm

2、Size/-XX:MaxPermSize 定义Perm区的尺寸,PermSize为JVM启动时Perm的内存大小;MaxPermSize为最大可占用的Perm内存大小。 这个参数需要看实际情况。 可以通过jmap 命令看看到底需要多少。在用户生产环境上一般将这两个值设为相同,以减少运行期间系统在内存申请上所花的开销。 -XX:SurvivorRaito 设置YOUNG段中Eden区与Survivor区的比值,如此值为4,则Eden为4/6,两个Survivor分别为1/6。 -XX:SurvivorRatio=65536,-XX:MaxTenuringThreshold=0就是去掉了救助空间;

3、可以减少FullGC造成系统停顿,提高一定系统性能,新生代未对垃圾进行多次回收-Xss 设置栈的大小。 JDK5.0以后每个线程堆栈大小为1M,以前每个线程堆栈大小为256K。一般来说,web框架下的应用需要256K即可。 如果你的程序有大规模的递归行为,请考虑设置到512K1M。 这个需要全面的测试才能知道。 不过,256K已经很大了。 这个参数对性能的影响比较大的。在相同物理内存下,减小这个值能生成更多的线程。但是操作系统对一个进程内的线程数还是有限制的,不能无限生成,经验值在30005000左右。 -XX:GCTimeRatio=系统吞吐量,衡量GC所占比重系统默认是99如n=19则表示

4、系统吞吐量为95% 19/(19+1)-XX:+UseAdaptiveSizePolicy 设置此选项后,并行收集器会自动选择年轻代区大小和相应的Survivor区比例,以达到目标系统规定的最低响应时间或者收集频率等。 -XX:+UseAdaptiveSizePolicy -XX:NewRaito 设置YOUNG与OLD段的比值。 在使用 CMS GC 的情况下此参数失效 ,如 :-XX:NewRatio=2 -XX:NewSize/-XX:MaxNewSize 定义YOUNG段的尺寸,NewSize为JVM启动时YOUNG的内存大小;MaxNewSize为最大可占用的YOUNG内存大小。 默

5、认是物理内存的1/4但小于1G。 在用户生产环境上一般将这两个值设为相同,以减少运行期间系统在内存申请上所花的开销。 -XX:MaxGCPauseMillis 设置每次年轻代垃圾回收的最长时间,如果无法满足此时间,JVM会自动调整年轻代大小,以满足此值。 -XX:MaxGCPauseMillis -XX:MinHeapFreeRatio=指定 jvm heap 在使用率小于 n 的情况下 ,heap 进行收缩 ,Xmx=Xms 的情况下无效 , 如 :-XX:MinHeapFreeRatio=30-XX:MaxHeapFreeRatio=指定 jvm heap 在使用率大于 n 的情况下 ,h

6、eap 进行扩张 ,Xmx=Xms 的情况下无效 , 如 :-XX:MaxHeapFreeRatio=70-XX:LargePageSizeInBytes=指定 Java heap 的分页页面大小 , 如 :-XX:LargePageSizeInBytes=128m串行垃圾回收策略-XX:+UseSerialGC 设置串行收集器,较老版本JVM默认使用的GC方式,性能比较低为单线程GC,也是默认的GC。,该GC适用于单CPU机器-XX:MaxTenuringThreshold =设置垃圾最大年龄。 指定一个 object 在经历了 n 次 young gc 后转移到 old generatio

7、n 区 , 在 linux64 的 java6 下默认值是 15, 此参数对于 并行GC 无效 , 如 :-XX:MaxTenuringThreshold=31如果设置为0的话,则新生对象不经过Survivor区,直接进入OLD段。对于OLD对象比较多的应用,可以提高效率。如果将此值设置为一个较大值,则新生对象会在Survivor区进行多次复制,这样可以增加对象的存活时间,增加在minor collection及时回收的概率。 并行垃圾回收策略-XX:+UseParNewGC指定在 young Generation 使用 parallel collector, 是 UseParallelGC

8、的 gc 的升级版本 , 有更好的性能和优点 , 可以和 CMS gc 一起使用 -XX:+UseParallelOldGC 配置年老代垃圾收集方式为并行收集。JDK6.0支持对年老代并行收集。 -XX:ParallelGCThreads 配置并行收集器的线程数,即:同时多少个线程一起进行垃圾回收。 默认是物理 processor 的个数此值最好配置与处理器数目相等。 -XX:+UseParallelGC 选择垃圾收集器为并行收集器。此配置仅对年轻代有效。即上述配置下,年轻代使用并发收集,而年老代仍旧使用串行收集,其升级版本为UseParNewGC性能会更好一些。 指定在 young区 使用

9、parallel collector, 并行收集 , 暂停 app threads, 同时启动多个垃圾回收 thread, 不能和 CMS gc 一起使用 . 系统吨吐量优先 , 但是会有较长长时间的 app pause, 后台系统任务可以使用此 gc并发垃圾回收策略XX:+UseConcMarkSweepGC指定在Old Generation使用Concurrent Low Pause Collector,设置并发收集器可与如下配合使用:-XX:ParallelGCThreads-XX:+UseParNewGC 适用于多CPU,并要求缩短因GC造成程序停滞的时间。这种GC可以在Old区的回收

10、同时,运行应用程序。-XX:+UseConcMarkSweepGC参数启动该GC。-XX:ParallelCMSThreads指定启用并发回收的线程数目CMS默认启动的回收线程数目是(ParallelGCThreads + 3)/4),其中ParallelGCThreads是年轻代的并行收集线程数-XX:+CMSPermGenSweepingEnabled指定perm区启用CMS收集器-XX:+CMSClassUnloadingEnabled通常配合上一项使用-XX:+CMSParallelRemarkEnabled在使用 UseParNewGC 的情况下 , 尽量减少 mark 的时间XX:

11、+CMSScavengeBeforeRemark如何mark时间还是过长,可以通过此选项进一步加强,在mark之前进行一次minorGC-XX:+UseCMSCompactAtFullCollection在FULL GC的时候, 压缩内存, CMS是不会移动内存的, 因此, 这个非常容易产生碎片, 导致内存不够用, 因此, 内存的压缩这个时候就会被启用。 增加这个参数是个好习惯。如果启用本项,系统默认每次FullGC,都会进行内存压缩这个配置是把双刃剑,在一定程度上能减少FullGC,但是也会影响一点性能,本操作执行时应用会暂停-XX:CMSFullGCsBeforeCompaction=用来

12、指定多少次FullGC才压缩内存,通常配合-XX:+UseCMSCompactAtFullCollection使用如:-XX:CMSFullGCsBeforeCompaction=5-XX:CMSInitiatingOccupancyFraction=指示在 old generation 在使用了 n% 的比例后 , 启动 cmsGC,较低版本JVM默认值是 68, jdk6默认是92如 :-XX:CMSInitiatingOccupancyFraction=7068/92基本上满足(Xmx-Xmn)*(100-CMSInitiatingOccupancyFraction)/100=Xmn就不

13、会出现promotion failed统计垃圾回收信息-XX:+PrintGC-Xloggc:filename垃圾回收统计信息如在环境加上如下参数用于分析JVM表现-verbose:gc -XX:+PrintGCTimeStamps -XX:+PrintGCDetails -Xloggc:/home/test/logs/gc.log-XX:+PrintGCDetails打应垃圾收集的情况如 : GC 15610.466: ParNew: 229689K-20221K(235968K), 0.0194460 secs 1159829K-953935K(2070976K), 0.0196420 s

14、ecs-XX:+PrintGCTimeStamps打应垃圾收集的时间情况 如 : Times: user=0.09 sys=0.00, real=0.02 secs-XX:+PrintGCApplicationStoppedTime打应垃圾收集时 , 系统的停顿时间如 : Total time for which application threads were stopped: 0.0225920 seconds其他-XX:+DisableExplicitGC禁止 java 程序中的 full gc, 如 System.gc() 的调用. 最好加上么, 防止程序在代码里误用了。对性能造成冲击

15、。常用的垃圾回收机制介绍 名称实现原理标记清除收集器这种收集器首先遍历对象图并标记可到达的对象,然后扫描堆栈以寻找未标记对象并释放它们的内存。这种收集器一般使用单线程工作并停止其他操作标记压缩收集器有时也叫标记清除压缩收集器,与标记清除收集器有相同的标记阶段。在第二阶段,则把标记对象复制到堆栈的新域中以便压缩堆栈。这种收集器也停止其他操作复制收集器这种收集器将堆栈分为两个域,常称为半空间。每次仅使用一半的空间,jvm生成的新对象则放在另一半空间中。gc运行时,它把可到达对象复制到另一半空间,从而压缩了堆栈。这种方法适用于短生存期的对象,持续复制长生存期的对象则导致效率降低。增量收集器增量收集器

16、把堆栈分为多个域,每次仅从一个域收集垃圾。这会造成较小的应用程序中断。分代收集器这种收集器把堆栈分为两个或多个域,用以存放不同寿命的对象。jvm生成的新对象一般放在其中的某个域中。过一段时间,继续存在的对象将获得使用期并转入更长寿命的域中。分代收集器对不同的域使用不同的算法以优化性能。并发收集器并发收集器与应用程序同时运行。这些收集器在某点上(比如压缩时)一般都不得不停止其他操作以完成特定的任务,但是因为其他应用程序可进行其他的后台操作,所以中断其他处理的实际时间大大降低。并行收集器并行收集器使用某种传统的算法并使用多线程并行的执行它们的工作。在多cpu机器上使用多线程技术可以显著的提高java应用程序的可扩展性。

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1