🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
### JVM调优 JVM调优一般针对的是吞吐量和暂停时间 * 较高的吞吐量在较长时间段内,会让用户感觉上只有程序线程在执行,就认为程序运行是比较块的。 * 对于交互性较高的应用场景来说,越低的暂停时间对于用户来说是越感觉不到的。 高吞吐量和低暂停时间是一对相矛盾的存在 * 如果调优以吞吐量为主,那么必然会降低内存回收的频率,就会造成每次GC造成的暂停时间变长 * 如果调优以低暂停时间为主,那么每次GC回收的垃圾必然会减少,只能通过频繁的执行GC。 所以目前对于JVM的优化基本是按照应用程序的使用场景来定的,目前G1垃圾收集器的原则是在最大吞吐量优先的情况下,降低停顿时间 ### G1--JVM heap大小配置建议 参考配置G1 ``` java -server -Xms11200m -Xmx11200m -Dfile.encoding=UTF-8 -XX:UseG1GC -XX:MaxGCPauseMillis=20 -XX:+UnlockExperimentalVMOptions -XX:InitiatingHeapOccupancyPercent=56 -Xloggc:/root/logs/app-gc.log -XX:+PrintGCDetails -XX:+PrintGCDateStamps -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/root/logs/app-java.hprof app.jar ``` ### 2C4G linux64 jdk8 ``` -Xmx2688M -Xms2688M -Xmn960M -XX:MaxMetaspaceSize=512M -XX:MetaspaceSize=512M -XX:+UseG1GC ``` ### 4C8G linux64 jdk8 ``` -Xmx5440M -Xms5440M -XX:MaxMetaspaceSize=512M -XX:MetaspaceSize=512M -XX:+UseG1GC ``` ### 4C16G linux64 jdk8 ``` -Xmx10880M -Xms10880M -XX:MaxMetaspaceSize=512M -XX:MetaspaceSize=512M -XX:+UseG1GC ```