当前位置: 首页 > wzjs >正文

建设一个网站思路医疗保险网站开通建设

建设一个网站思路,医疗保险网站开通建设,顺德制作网站,世纪明珠网站建设1. 背景 java8中默认使用parallel scavenge parallel old的组合。当然我们也可使用parnew cms或g1的方案。 在实际应用过程中,如果ygc和fgc都比较少,如ygc一天几次或者一小时几次,其实我们都不用关心垃圾回收器的选型。因为垃圾回收器的改…

1. 背景

java8中默认使用parallel scavenge + parallel old的组合。当然我们也可使用parnew + cms或g1的方案。
在实际应用过程中,如果ygc和fgc都比较少,如ygc一天几次或者一小时几次,其实我们都不用关心垃圾回收器的选型。因为垃圾回收器的改变带来的性能提升几乎可以忽略。
然而,在大流量高并发场景下,如果一分钟出现1次或者多次ygc的话,那么我们评估使用场景,选择合适的垃圾回收器就显得更有价值。
另外,其实在实际应用过程中很少会出现fgc的情况,即使大流量的服务,基本都是在执行ygc,有时候可能几天才会出现一次fgc甚至很久都不出现。而且,线上活跃的应用一般都会持续迭代,可能3/5天上线一次,每次服务发布,之前积压的内存就清理了,几乎不会触发fgc。

2. 对比

接下来我们对比一下上述三种搭配的适用场景:

2.1 parallel scavenge+ parallel old

启动参数:-XX:+UseParallelGC(新生代)和 -XX:+UseParallelOldGC(老年代),一般默认,不用手动配置。

特点:

多线程并行回收新生代(Parallel Scavenge)和老年代(Parallel Old)。
默认以最大化吞吐量(应用运行时间占比)为目标。
适合多核服务器环境,但对延迟敏感的应用可能不友好。

适用场景:后台计算密集型任务(如批处理),不追求低延迟。

实战示例:8C16G机器

-Xms8192m
-Xmx8192m
-XX:MaxMetaspaceSize=512m
-XX:MetaspaceSize=512m
-XX:MaxDirectMemorySize=1024m
-XX:ConcGCThreads=4
-XX:ParallelGCThreads=8
-Xmn4096m
-XX:CICompilerCount=3
-XX:+UnlockExperimentalVMOptions
-XX:+ParallelRefProcEnabled
-XX:+HeapDumpOnOutOfMemoryError
-XX:+PrintGCDetails
-XX:+PrintGCTimeStamps
-XX:+PrintGCApplicationStoppedTime
-Xloggc:/export/Logs/xxx/gc.log
-XX:GCLogFileSize=1024M
-XX:+HeapDumpAfterFullGC
-XX:HeapDumpPath=/export/Logs/xxx/fgcdump.log

2.2 parnew + cms

启动参数:-XX:+UseConcMarkSweepGC,需要手动配置,同时还需要其他参数,后文列出。

特点:

老年代使用并发标记清除算法,尽量减少停顿时间。
新生代默认使用ParNew回收器(多线程)。
通过并发标记减少STW时间,但存在内存碎片问题。
注意:Java 8中仍可用,但在后续版本(Java 9+)被标记为废弃(Deprecated),最终在Java 14中被移除。

适用场景:对延迟敏感的中大型应用(如Web服务)。
搭配参数:

参数含义示例
-XX:ParallelGCThreads并行GC线程的数量(ncpu <= 8 : ParallelGCThreads = ncpus,ncpu > 8 : 8 + (ncpus - 8) ( 5/8 ))-XX:ParallelGCThreads=8
-XX:+UseParNewGC年轻代使用ParNew-XX:+UseParNewGC
-XX:+UseConcMarkSweepGC老年代使用CMS-XX:+UseConcMarkSweepGC
-XX:+CMSClassUnloadingEnabledJVM会在CMS的并发标记阶段(Concurrent Marking Phase)触发类卸载,释放不再使用的类元数据占用的内存-XX:+CMSClassUnloadingEnabled
-XX:+UseCMSInitiatingOccupancyOnly只用设定的回收阈值,如果不指定,JVM仅在第一次使用设定值,后续则自动调整-XX:+UseCMSInitiatingOccupancyOnly
-XX:CMSInitiatingOccupancyFraction老年代允许的最大使用率,达到则触发old gc-XX:CMSInitiatingOccupancyFraction=75
-XX:+CMSParallelRemarkEnabled在CMS GC前启动一次ygc,目的在于减少old gen对ygc gen的引用,降低remark时的开销,一般CMS的GC耗时 80%都在remark阶段-XX:+CMSParallelRemarkEnabled
-XX:CICompilerCount热点编译器线程数(2 + int(max(0, cpu_core_num - 2) * 0.25)最低2核,超出2核的部分拿出25%来热点编译)-XX:CICompilerCount=3
-XX:ConcGCThreadsCMS下是(ParallelGCThreads + 3) / 4 向下取整, G1下是ParallelGCThreads / 4-XX:ConcGCThreads=4

实战示例:8C16G机器

-Xms8192m
-Xmx8192m
-XX:MaxMetaspaceSize=512m
-XX:MetaspaceSize=512m
-XX:MaxDirectMemorySize=1024m
-XX:ConcGCThreads=4
-XX:ParallelGCThreads=8
-Xmn4096m
-XX:CICompilerCount=3
-XX:+UseParNewGC
-XX:+UseConcMarkSweepGC
-XX:+UnlockExperimentalVMOptions
-XX:+CMSClassUnloadingEnabled
-XX:+UseCMSInitiatingOccupancyOnly
-XX:CMSInitiatingOccupancyFraction=75
-XX:+ExplicitGCInvokesConcurrent
-XX:+ParallelRefProcEnabled
-XX:+CMSParallelRemarkEnabled
-XX:+HeapDumpOnOutOfMemoryError
-XX:+PrintGCDetails
-XX:+PrintGCTimeStamps
-XX:+PrintGCApplicationStoppedTime
-Xloggc:/export/Logs/xxx/gc.log
-XX:GCLogFileSize=1024M
-XX:+HeapDumpAfterFullGC
-XX:HeapDumpPath=/export/Logs/xxx/fgcdump.log

2.3 g1

启动参数:-XX:+UseG1GC,需要手动配置,同时还需要其他参数,后文列出。

特点:

将堆划分为多个区域(Region),优先回收垃圾最多的区域。
可预测的停顿时间模型,支持大堆(数十GB到上百GB)。
混合了标记-整理和复制算法,减少内存碎片。
注意:Java 7u4引入,Java 9+成为默认回收器。

适用场景:需要平衡吞吐量和延迟的大型应用(如企业级服务)。
搭配参数(cms体系中描述过的这里不再赘述,见示例):

参数含义示例
-XX:+UseG1GC使用G1垃圾回收器-XX:+UseParNewGC
-XX:MaxGCPauseMillis设置 G1 的暂停时间目标。这会告诉 G1 试图将 GC 暂停时间控制在指定的毫秒数内-XX:MaxGCPauseMillis=50
-XX:G1HeapRegionSize设置 G1 的堆区域大小。堆被划分为多个区域(Region),G1 GC 在这些区域上进行垃圾收集。设置合适的区域大小可以帮助提高垃圾回收效率。()-XX:G1HeapRegionSize=16m

实战示例:8C16G机器

-Xms8192m
-Xmx8192m
-XX:MaxMetaspaceSize=512m
-XX:MetaspaceSize=512m
-XX:MaxDirectMemorySize=1024m
-Xmn4096m
-XX:ConcGCThreads=2
-XX:ParallelGCThreads=8
-XX:CICompilerCount=3
-XX:+UseG1GC
-XX:MaxGCPauseMillis=50
-XX:+UnlockExperimentalVMOptions
-XX:+ParallelRefProcEnabled
-XX:+HeapDumpOnOutOfMemoryError
-XX:+PrintGCDetails
-XX:+PrintGCTimeStamps
-XX:+PrintGCApplicationStoppedTime
-Xloggc:/export/Logs/xxx/gc.log
-XX:GCLogFileSize=1024M
-XX:+HeapDumpAfterFullGC
-XX:HeapDumpPath=/export/Logs/xxx/fgcdump.log

3. 总结

后台计算密集型任务(如批处理),不追求低延迟。场景下使用默认配置,即parallel scavenge + parallel old。对延迟敏感的中大型应用(如Web服务)使用parnew + cms。需要平衡吞吐量和延迟的大型应用(如企业级服务)使用g1。
C端高并发应用优先考虑parnew + cms 或 g1,但具体的选型还需根据实际场景评估,如果很难评估的情况下,可以同分组内A B两台机器,上线后观察分析gc日志以及在流量高峰期的cpu表现。


文章转载自:

http://4Yq53Rna.qrLkt.cn
http://jBnEI9tA.qrLkt.cn
http://sCOZfDoN.qrLkt.cn
http://1frL1PJ4.qrLkt.cn
http://Lhavxfag.qrLkt.cn
http://8eQItydd.qrLkt.cn
http://J6R81NCW.qrLkt.cn
http://Le7bOniX.qrLkt.cn
http://HmCy9fsv.qrLkt.cn
http://JWnev0Og.qrLkt.cn
http://nJVh4VZq.qrLkt.cn
http://o6UY7C3Q.qrLkt.cn
http://Th51pvBy.qrLkt.cn
http://g2PYONhl.qrLkt.cn
http://vGACEfW2.qrLkt.cn
http://jCisiBoG.qrLkt.cn
http://1uxt43TA.qrLkt.cn
http://pr01vXZu.qrLkt.cn
http://myIigphp.qrLkt.cn
http://Bq53vC1e.qrLkt.cn
http://GKG6YtY9.qrLkt.cn
http://jjtNzXhk.qrLkt.cn
http://acEX0YES.qrLkt.cn
http://1vbRy34t.qrLkt.cn
http://U6wsJzpK.qrLkt.cn
http://TFllFiXh.qrLkt.cn
http://UHQ71l8C.qrLkt.cn
http://zraaT9hw.qrLkt.cn
http://piigpsas.qrLkt.cn
http://PFer2VDV.qrLkt.cn
http://www.dtcms.com/wzjs/725746.html

相关文章:

  • 老男孩linux网站常州辉煌网络网站制作
  • 网站首页欣赏90设计网官网登录
  • 网站建设分解结构c 网站开发 书
  • 二手车网站开发数据库设计湖南旅游网站开发
  • 广元做开锁网站广州seo服务外包
  • 中标公示查询网站wordpress怎么破解插件
  • 金种子酒业网站建设廊坊企业网站团队
  • 广州市手机网站建设平台美辰网站建设
  • 建设工程部网站拉新推广赚钱的app
  • 金马国旅网站建设汽车 营销 网站建设
  • 婚纱网站免费源码免费logo
  • 昆山网站建设书生商友淄博网站优化推广
  • 行业门户网站方案图片演示dw做网站
  • 工商网站如何做实名问答网站模板下载
  • 网站制作价目表哈尔滨seo建站
  • 瑞华特散热器网站谁给做的抖音seo公司帝搜平台
  • 网站开发架设wordpress电影网站主题
  • 布吉商城网站建设基本流程做家教在哪个网站找
  • 北京监理建设协会网站网站可以做什么
  • 做网站 如何注册公司大学电子商务网站建设方案
  • 网站站内搜索制作中天建设集团有限公司是央企吗
  • 上海专业网站建免费红色ppt模板下载
  • 网站负责人核验现场拍摄照片wordpress 建站对比
  • 网站建设与维护培训做网站需要营业执照嘛
  • 0基础学做网站又拍云 wordpress
  • 厦门路桥建设集团有限公司网站网页界面设计的参考文献
  • 福州企业建站服务定制规划设计公司
  • 北京做网站电话网商之家
  • 网站备案与服务器哪些网站用jsp
  • 宁波市住房和城乡建设培训中心网站北京手机网站建设报价