码迷,mamicode.com
首页 > 其他好文 > 详细

Tomcat调优过程记录

时间:2020-06-04 15:21:14      阅读:65      评论:0      收藏:0      [点我收藏+]

标签:load   上下   启动   集群   java代码   调试   情况   nec   应用   

1、 测试环境准备

jmeter地址: https://jmeter.apache.org/download_jmeter.cgi

2、 连接数 调整

总共连接数 = acceptCount+ connections
connections: Tomcat能接收的请求限制;
acceptCount: 超过Tomcat能接收的请求数以后,堆积在操作系统的数量(windows 和 linux
略有不同);

技术图片

2.1 什么时候需要调整connections?如何调整?

connections小于maxThread的时候;需要调大;最好是比预期的最高并发数要大20%;反
正是堆积到tomcat的work处理线程池中(堆积占内存);

2.2 什么时候需要调整acceptCount?

想受理更多用户请求,却又不想堆积在tomcat中,利用操作系统来高效的堆积,可以调整为
最高并发数 - connections;
实际上不需要调整,tomcat默认100,linux默认128;最好是把连接控制交给应用程序,这
样方便管理。

启动方式: java -jar web-demo-1.1.0.jar --server.tomcat.max-connections=1 --
server.tomcat.max-thread=1 --server.tomcat.acceptCount=1

3、 并发处理线程数 调整

线程太少,CPU利用率过低,程序的吞吐量变小,资源浪费,容易堆积。
线程太多,上下文频繁切换,性能反而变低。

3.1 线程数调为多少合适?

场景代入:服务器配置2核,不考虑内存问题。收到请求,java代码执行耗时50ms,等待数
据返回50ms
理想的线程数量= (1 + 代码阻塞时间/代码执行时间) * cpu数量
实际情况是跑起代码,压测环境进行调试。不断调整线程数,将CPU打到80~90%的利用
率。
java -jar web-demo-1.1.0.jar --server.tomcat.max-threads=500

4、 总结

请求多,CPU占用率高了,如果能接受很慢的响应,就加大。 否则就集群分流
认清现实,优化代码才是王道,配置只能是锦上添花!
技术图片

Tomcat调优过程记录

标签:load   上下   启动   集群   java代码   调试   情况   nec   应用   

原文地址:https://www.cnblogs.com/niugang0920/p/13043653.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!