jvm垃圾回收——功效学
来源:互联网 发布:iis ip地址和域名限制 编辑:程序博客网 时间:2024/04/29 21:32
转载请注明出处,多谢。
这些变化J2SE5.0开始有效。(同样适用于java6)
1
在server-class机器(至少2个CPU同时至少2G物理内存)上运行serverVM模式,回收器自动从串行(-XX:+UseSerialGC) 变成并行(-XX:+UseParallelGC)。你也可以通过命令行-XX:+UseSerialGC改回来。
2
在server-class机器上使用并行GC,无论client或者server模式,初始堆大小和最大堆大小如下变化:
初始堆大小:
大于1/64物理内存或者合理的最小值(Larger of 1/64th of the machine's physical memory on the machine or some reasonable minimum.)在J2SE 5.0z之前默认初始堆大小是合理的最小值,并且不同平台值不同。可以用-Xms改动。
堆最大值:
小于1/4物理内存或者1GB。在J2ES 5.0之前默认只是64MB。你可以用-Xmx改动。
注意:边界值和分数值在J2SE5.0适用。很可能在以后的版本中不同,由于计算机变得更强大。
3
平行垃圾回收器(UseParallelGC) 抛出out-of-memory异常,如果在小数量堆上收集而花费过多的时间。为了避免异常,你可以增加堆大小。你也可以设置参数-XX:GCTimeLimit=time-limit和-XX:GCHeapFreeLimit=space-limit :(译者:到达限制会抛出oom)
time-limit:垃圾回收时间占整体时间的上限百分比(默认98)
space-limit:可用区域占堆最大值的百分比(默认2)
4
-XX:+UseAdaptiveSizePolicy在-XX:+UseParallelGC收集器下默认使用,已经变成考虑一下三个目标:
1最大GC暂停时间需求
2应用吞吐量目标需求
3最小覆盖(foorprint)
按照一下顺序:
1如果GC暂停时间大于暂停目标,减少代大小完成目标。
2如果暂停时间合适,考虑应用吞吐目标。如果应用吞吐量目标不合适,增加代大小,完成目标。
3如果以上都合适,减少代大小,来减少GC所需的覆盖面(foorprint)。
标记
-XX:MaxGCPauseMillis=nnn
告诉虚拟机需要nnn毫秒或者以下的暂停时间。VM将会调正堆大小和其他GC相关参数,试图保持GC触发(GC-induced)暂停时间比nnn毫秒短。注意,这可能引起VM减少吞吐量,在某些情况下,VM不能满足暂停时间需要。
默认没有暂停时间目标。如何很好的满足暂停时间目标有一定的局限性。GC暂停时间依赖于堆中活着对象的数量,次GC和主GC的依赖方式也不同。所以小心使用这个参数。太小的值可能引起系统花费大量时间再GC上。
-XX:GCTimeRatio=nnn
告诉虚拟机回收器花费的时间,不要超过应用执行时间的1/(1+nnn)。例如-XX:GCTimeRatio=19是设置GC时间是整个时间的5%,吞吐量是95%。应用时间是垃圾回收的19倍。
默认值是99,意味着应用至少是垃圾回收的99倍。也就是,垃圾回收不要超过整体时间的1%。这对于服务器应用是个好的选择。值太大会引起堆大小增长到最大值。
建议策略
不要选择堆的最大值,除非你知道你的堆比默认最大值大。选择吞吐量对于你的应用足够了。
在理想情况,堆会增长到一个值(比最大值小)来支持选择的吞吐量。
如果堆涨到最大值,吞吐量不还没有达到。尽可能大的设置堆,但是不要大于物理内存;再执行应用,如果吞吐量仍然不能达到,它对于可用内存(译者:需要加内存了)过高了。
如果吞吐量可以达到,但是暂停时间太长,设置一个暂停时间目标。这很可能意味着你的吞吐量目标达不到了,所以暂停时间值应该是可以让应用达到一个合适的平衡。
- jvm垃圾回收——功效学
- JVM—垃圾回收
- 轻松学JVM(四)——垃圾回收算法
- 轻松学JVM(四)——垃圾回收算法
- JVM—垃圾回收机制
- JVM内核—JVM垃圾回收
- JVM——垃圾回收(GC)
- JVM之——垃圾回收简介
- 探究JVM——垃圾回收
- JVM——垃圾回收机制入门
- JVM(四)——垃圾回收机制
- 【JVM】——垃圾回收机制
- jvm优化—— 图解垃圾回收
- 【浅度渣文】JVM——简述垃圾回收
- jvm优化—— 图解垃圾回收
- JVM原理、架构—垃圾回收机制
- jvm垃圾回收——诊断垃圾收集问题
- JVM(三)—垃圾回收算法及垃圾收集器
- mongodb安装
- [LeetCode] 621. Task Scheduler
- Deep Learning 学习笔记整理系列之五
- jvm参数(全)
- base64字符串与图片之间的转换
- jvm垃圾回收——功效学
- Hive Analytics Functions row_number rank over partition by
- jvm垃圾回收——诊断垃圾收集问题
- android 反射 记录
- jvm垃圾回收——垃圾优先Garbage-First收集器
- Sqoop 1.4.6 踩坑记录
- J2SE6 HotSpot垃圾回收调优(一)
- Master.Kick.
- sping3 ajax 乱码