网站备案用的幕布可以淘宝做吗,北海哪里做网站,上海优化排名公司,代运营合同模板一、Throughput收集器(吞吐量) -XX:UseParallelGC -XX:UseParallelOldGC
*参数调整#xff1a;通过调整堆大小#xff0c;减少GC停顿时间#xff0c;增大吞吐量 增强堆大小可以减少Full GC频率#xff0c;但却会增加停顿时间 1.手动调整 -Xmn -Xms -XX:NewRatioN 手动指…一、Throughput收集器(吞吐量) -XX:UseParallelGC -XX:UseParallelOldGC
*参数调整通过调整堆大小减少GC停顿时间增大吞吐量 增强堆大小可以减少Full GC频率但却会增加停顿时间 1.手动调整 -Xmn -Xms -XX:NewRatioN 手动指定堆内存大小和代空间比例一般要多次试验 2.自动参数调整 -XX:MaxGCPauseMillisN 可接受最大停顿时间 -XX:GCTimeRatioN 可接受GC时间占比目标吞吐量 吞吐量1-1/(1N) 步骤 1.MaxGCPauseMillis优先级高JVM会自动调整堆大小和代空间值以期满足MaxGCPauseMillis 2.当MaxGCPauseMillis满足后JVM会增大堆大小直到满足GCTimeRatio 3.当MaxGCPauseMillis和GCTimeRadio都满足后JVM会尽可能以最小堆大小来实现这两个指标参数 Throughput一般不考虑响应时间所以一般不设置-XX:MaxGCPauseMillis
一般吞吐量在95%以上就算比较好的了对于可用内存很少的环境可以降低指标 二、CMS收集器(响应时间) -XX:UseParNewGC -XX:UseConcMarkSweepGC CMS收集器会对年轻代进行并发GC, 会有stw(stop-the-world) CMS收集器会对老年代进行并发GC, CMS 如果有必要CMS会发起单线程的Full GC, 这个操作十分耗时
Full GC原因 并发模式失效新生代发生GC时老年代没有足够内存容纳晋升对象 晋升失败老年代虽然有足够容纳晋升对象的内存但内存都是碎片导致晋升失败
*参数调整避免并发模式失效和晋升失败 -XX:UseCMSInitiatingOccupancyOnly 根据Old内存使用阈值决定何时CMS, 默认是false会用更复杂的算法决定何时CMS -XX:CMSInitingOccupancyFractionN default N70老年代内存使用70%时就发生CMS N设置太大容易并发模式失效N太小CMS过于频繁而CMS也会导致stop-the-world -XX:ConGCThreadsN GC的线程会100%占用CPU如果发生并发模式失败而N还小于CPU核心数此时可以增加N。 如果没有发生并发模式失败此时可以减少N以让应用程序有更多CPU执行
Perm持久代GC调优 持久代内存满了会引发Full GC 持久代GC调优主要是让持久代也进行CMS收集 -XX:CMSPermGenSweepingEnable 使持久代使用CMS收集器 -XX:CMSClassUnloadingEnable 使持久代能真正释放不再被使用的类。默认是不会释放类的元数据的
增量式CMS:普通CMS线程会占用100%的cpu负载增量式CMS会让出一定CPU负载给应用线程 这适合在单核CPU使用显然已经没啥用处了