tomcat参数调优
1.配置项
2.连接数调整
总连接数 = acceptCount+connections
connections:tomcat能接收的请求限制
acceptCount:超过tomcat能接收的请求以后,堆积在操作系统的数量(windows和linux略有不同)
什么时候需要调整connnections(springboot配置参数:server.tomcat.max-connections)?如何调整?
connections小于maxThreads的时候,需要调大,最好是比预期的最高并发数要大20%,多出的请求堆积
到tomcat的worker处理线程池中
什么时候需要调整acceptCount(springboot配置参数:server.tomcat.accept-count)?
想受理更多用户请求,却又不想堆积在tomcat中,利用操作系统来堆积,可以调整为最高并发数-connections
实际上不需要调整,tonmcat默认100,linux默认128,最好是把连接控制交给应用程序,这样方便管理
线程数量(springboot配置参数:server.tomcat.max-threads)调为多少合适?
线程太少,cpu利用率过低,程序吞吐量变小,资源浪费,容易堆积
线程太多,上下文频繁切换,性能反而降低
理想的线程数量是(1+代码阻塞时间/代码执行时间)*线程数量
实际情况是跑起代码,使用jmeter之类的压测工具进行压测,不断调整线程数,将cpu
打到80%-90%的利用率
3.总结
请求多,cpu占用率高了,如果能接受慢响应,就加大线程数量,否则就集群分流
优化代码才是王道,配置知识锦上添花