标签:lang pre 线程 major gc 状态 use 文章 资源 strong
(目前有存在大于1s的FullGC,金桥的机器目前是2C4G的,使用的GC方法只能使用单线程进行串行的回收,导致GC比较慢。
建议可以调整GC参数,改用CMS,能够解决这个问题,
参数修改方法:
在应用 webapp/WEB-INF/tars/prod 文件夹下,创建文件 extraenv.sh
文件内容
#!/usr/bin/env bash
JAVA_OPTS="${JAVA_OPTS} -XX:+UseConcMarkSweepGC"
或者升级JAVA8后,默认使用CMS也能解决这个问题。)
ps:我查的跟上面说的不一样(https://zhuanlan.zhihu.com/p/45558897)
jdk1.7 默认垃圾收集器Parallel Scavenge(新生代)+Parallel Old(老年代)
jdk1.8 默认垃圾收集器Parallel Scavenge(新生代)+Parallel Old(老年代)
jdk1.9 默认垃圾收集器G1
实际应该是,机器目前是2C4G,核心数太少,所以采用串行Serial收集器(并发时对CPU资源占用多,不适合CPU核心数较少的情况。)
老年代收集器中:
Serial Old 在进行垃圾收集时,必须暂停其他所有的工作线程,直至Serial收集器收集结束为止(“Stop The World”)。
CMS(Concurrent Mark Sweep)收集器是一种以获取最短回收停顿时间为目标的收集器。从总体上来说,CMS收集器的内存回收过程是与用户线程一起并发执行的(Parallel是并行)
垃圾收集器详情:https://www.cnblogs.com/twoheads/p/10207573.html
标签:lang pre 线程 major gc 状态 use 文章 资源 strong
原文地址:https://www.cnblogs.com/twoheads/p/10207206.html