史上最强Tomcat8性能优化(下)( 三 )
连接器最佳实践此最佳配置仅供参考
调整JVM参数进行优化接下来 , 通过设置jvm参数进行优化 , 为了测试一致性 , 依然将最大线程数设置为500 , 启用nio2运行模式
设置并行垃圾回收器在/bin/catalina.sh文件第一行添加如下参数 , gc日志输出到/logs/gc.log
#年轻代、老年代均使用并行收集器 , 初始堆内存64M , 最大堆内存512MJAVA_OPTS="-XX:+UseParallelGC -XX:+UseParallelOldGC -Xms64m -Xmx512m -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -XX:+PrintGCDateStamps -XX:+PrintHeapAtGC -Xloggc:../logs/gc.log"
文章插图
测试结果与默认的JVM参数结果接近 。
查看gc日志文件将gc.log文件上传到gceasy.io查看gc中是否存在问题 。 上传文件后需要等待一段时间 , 需要耐心等待 。
文章插图
问题一:系统所消耗的时间大于用户时间
文章插图
如果在报告中显示System Time greater than User Time , 系统所消耗的时间大于用户时间 , 这反应出的服务器的性能存在瓶颈 , 调度CPU等资源所消耗的时间要长一些 。
问题二:线程暂停时间有点长
文章插图
可以关键指标中可以看出 , 吞吐量表现不错 , 但是gc时 , 线程的暂停时间稍有点长 。
【史上最强Tomcat8性能优化(下)】问题三:GC总次数过多
文章插图
通过GC的统计可以看出:
- 年轻代的gc有100次 , 次数有点多 , 说明年轻代设置的大小不合适 , 需要调整
- FullGC有7次 , 说明堆内存的大小不合适 , 需要调整
文章插图
从GC原因的可以看出 , 年轻代大小设置不合理 , 导致了多次GC 。
调整年轻代大小调整jvm配置参数
JAVA_OPTS="-XX:+UseParallelGC -XX:+UseParallelOldGC -Xms128m -Xmx1024m -XX:NewSize=64m -XX:MaxNewSize=256m -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -XX:+PrintGCDateStamps -XX:+PrintHeapAtGC -Xloggc:../logs/gc.log"
将初始堆大小设置为128m , 最大为1024m , 初始年轻代大小64m , 年轻代最大256m文章插图
从测试结果来看 , 吞吐量以及响应时间均有提升 。
查看gc日志
文章插图
可以看到GC次数要明显减少 , 说明调整是有效的 。
文章插图
GC次数有所减少
文章插图
设置G1垃圾回收器
#设置了最大停顿时间100毫秒 , 初始堆内存128m , 最大堆内存1024mJAVA_OPTS="-XX:+UseG1GC -XX:MaxGCPauseMillis=100 -Xms128m -Xmx1024m -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -XX:+PrintGCDateStamps -XX:+PrintHeapAtGC -Xloggc:../logs/gc.log"
测试结果文章插图
可以看到 , 吞吐量有所提升 , 评价响应时间也有所缩短 。
文章插图
G1集合阶段统计
文章插图
JVM配置最佳实践此最佳配置仅供参考
JAVA_OPTS="-Dfile.encoding=UTF-8-server -Xms1024m -Xmx2048m -XX:NewSize=512m -XX:MaxNewSize=1024m -XX:PermSize=256m -XX:MaxPermSize=256m -XX:MaxTenuringThreshold=10-XX:NewRatio=2 -XX:+DisableExplicitGC"
参数说明:file.encoding 默认文件编码
-Xmx1024m 设置JVM最大可用内存为1024MB
-Xms1024m 设置JVM最小内存为1024m 。 此值可以设置与-Xmx相同 , 以避免每次垃圾回收完成后JVM重新分配内存 。
-XX:NewSize 设置年轻代大小
-XX:MaxNewSize 设置最大的年轻代大小
- spring|性能最强5G手机,现在现货供应,好评率97%
- vivo|史上首次,vivo举行了一场“无声”发布会
- 小米科技|雷军突然官宣,一切让人没有预料,可能是性能最强的小米手机
- 英伟达|阻止半导体芯片史上最大收购 美联邦贸易委员会起诉英伟达
- 散热器|雷军官宣,可能是最强大的小米手机要来了,旧机型无奈加速退场
- 相机|官宣开始量产!小米新机要来了!可能是目前性能最强的小米手机了
- 荣耀|最强前置镜头?荣耀60系列或搭载5000万像素前摄
- 笔记本|OriginOS Ocean首张产品海报亮相!设计风格大改,冲击业界最强?
- gtx|英伟达最强4G显卡,GTX1650 Super游戏测试,显卡溢价的最佳选择
- 苹果|反击苹果正式开始!国内科技巨头发出最强声音!全球第二要换人