阿里终面:每天100w次登陆请求, 8G 内存该如何设置JVM参数?

5 min read

针对每天100w次登陆请求和8G内存的情况,建议设置JVM参数如下:

  1. 设置初始堆内存和最大堆内存一样,推荐设置为内存的一半,即4G,命令为:-Xms4G -Xmx4G

  2. 设置年轻代和老年代的初始内存和最大内存一样,分别占堆内存的1/3和2/3,即年轻代分配1.3G,老年代分配2.7G,命令为:-XX:NewSize=1.3G -XX:MaxNewSize=1.3G -XX:SurvivorRatio=8 -XX:MaxTenuringThreshold=15 -XX:TargetSurvivorRatio=90 -XX:NewRatio=3

  3. 设置元空间(Metaspace)大小,推荐设置为堆内存的三分之一,即2.6G,命令为:-XX:MetaspaceSize=2.6G -XX:MaxMetaspaceSize=2.6G

  4. 开启垃圾回收日志,方便对JVM调优,命令为:-XX:+PrintGCTimeStamps -XX:+PrintGCDetails

  5. 设置JVM支持的并发线程数,推荐设置为CPU核心数的2倍,假设CPU核心数为4,则命令为:-XX:ParallelGCThreads=8

综上所述,设置JVM参数为:-Xms4G -Xmx4G -XX:NewSize=1.3G -XX:MaxNewSize=1.3G -XX:SurvivorRatio=8 -XX:MaxTenuringThreshold=15 -XX:TargetSurvivorRatio=90 -XX:NewRatio=3 -XX:MetaspaceSize=2.6G -XX:MaxMetaspaceSize=2.6G -XX:+PrintGCTimeStamps -XX:+PrintGCDetails -XX:ParallelGCThreads=8。