nohup java -Dspring.profiles.active=prod -server -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/home/logs -Xms4G -Xmx4G -Xmn1536M -XX:MetaspaceSize=256M -XX:MaxMetaspaceSize=512M -XX:+DisableExplicitGC -XX:SurvivorRatio=8 -XX:+UseConcMarkSweepGC -XX:+UseParNewGC -XX:+CMSParallelRemarkEnabled -XX:+CMSClassUnloadingEnabled -XX:LargePageSizeInBytes=128M -XX:+UseFastAccessorMethods -XX:+UseCMSInitiatingOccupancyOnly -XX:CMSInitiatingOccupancyFraction=80 -XX:SoftRefLRUPolicyMSPerMB=0 -jar --spring.cloud.inetutils.ignored-interfaces=lo.* XXX.jar >>/dev/null &
配置项 | 意思 |
-Dspring.profiles.active=prod | 选择不同配置文件 |
--spring.cloud.inetutils.ignored-interfaces=lo.* | 服务器有两个以上网卡,使用固定网卡 |
-XX:+HeapDumpOnOutOfMemoryError等等 | jvm虚拟机优化 |
nohup ... >>/dev/null & | 后台启动 |
java -jar XXX.jar | java命令可以指定绝对路径;既可以指定不同版本jdk运行jar包 |
-Xmx | 堆的最大内存大小 |
-Xms | 堆的初始内存大小 |
-Xss | 线程栈的大小 |
-XX:MetaspaceSize | 元空间的初始大小 |
-XX:MaxMetaspaceSize | 元空间的最大大小 |
-D | 设置系统属性 |
-XX:MaxDirectMemorySize | 系统可食用的最大堆外内存 |
-XX:ReservedCodeCacheSize | 保留的代码缓存大小 |
-XX:ParallelGCThreads | STW期间,并行GC线程数 |
-XX:+UseG1GC | Garbage-First Garbage Collector 默认的 GC算法 |
-XX:InitiatingHeapOccupancyPercent | Java 堆占用率阈值 |
-XX:+HeapDumpBeforeFullGC | Full GC前dump |
-XX:+HeapDumpAfterFullGC | Full GC后dump |
-XX:+DisableExplicitGC | 禁止显式执行GC,不允许通过代码来触发GC |
-XX:SurvivorRatio | 新生代内存各区(End区域 和 Survivor区域【From幸存区 和To幸存区】)比值 |
-XX:+UseConcMarkSweepGC | 使用并发标记清除垃圾收集器 |
-XX:+UseParNewGC | 老年代默认使用 Serial Old收集器 |
-XX:+CMSParallelRemarkEnabled | 开启并行的Remark,加快remark的速度 |
-XX:+CMSClassUnloadingEnabled | 控制类卸载功能默认开启,设置代表禁止类卸载 |
-XX:LargePageSizeInBytes | 指定 Java heap 的分页页面大小 |
-XX:+UseFastAccessorMethods | get,set 方法转成本地代码 |
-XX:+UseCMSInitiatingOccupancyOnly | 指定用设定的回收阈值 |
XX:CMSInitiatingOccupancyFraction=80 | CMS垃圾收集器,当老年代达到80%时,触发CMS垃圾回收 |
-XX:SoftRefLRUPolicyMSPerMB | 控制SoftReference缓存时间,而我们的电子表格的缓存都是存储SoftReference里边的,当设置了这个参数设置为0的时候,任意操作,只要是触发了gc,这时候就会清空了电子表格缓存,导致即使在内存足够的情况下,缓存也不生效了。 |
云机器:
-Djava.security.egd=file:/dev/./urandom -DLog4j2.contextSelector=org.apache.logging.log4j.core.async.AsyncLoggerContextSelector -Dmicro.service.shutdown.wait.time=15000 -Dmicro.service.shutdown.auto.wait=false -server -Xms10240m -Xmx10240m -Xmn512m -Xss1m
-XX:MetaspaceSize=5120m
-XX:MaxMetaspaceSize=512m
-XX:MaxDirectMemorySize=1024m
-XX:ReservedCodeCacheSize=256m
-XX:ParallelGCThreads=4
-XX:+UseG1GC
-XX:+PrintGCDetails
-XX:G1HeapRegionSize=8
-XX:ConcGCThreads=1
-XX:InitiatingHeapOccupancyPercent=45
-XX:+HeapDumpBeforeFullGC -XX:+HeapDumpAfterFullGC
-XX:HeapDumpPath=/home/admin/applog/dump-testgc.Main
-Dlog4j2.enable.threadlocals=true -Dlog4j2.enable.direct.encoders=true
-Dlog4j2.asyncLoggerRingBufferSize=40960 -Dlog4j2.asyncLoggerWaitStrategy=timeout -Dlog4j2.asyncQueueFullPolicy=discard -Dahas.namespace=prod