一、线程池优化
maxConnections -- 最大连接数
1、受服务器内核影响,linux 通过 ulimit -a 查看服务目前情况
open files = 1024 (保守数值)调整这个数值
vi /etc/security/limits.conf
在文件下面添加配置
* soft nofiles 65535
* hard nofiles 65535
2、添加maxConntions的配置
考虑:①对CPU要求更高(计算量较大)建议对这属性配置不要太大,过大时会对CPU产生竞争,会影响计算效率(如大数据相关)
②对IO要求比较大 正常访问数据库,跑逻辑程序,对CPU要求不是特别高的时候,服务器建议配置3000左右(64G内存,32核CPU),实际2300-2700左右。(配置后建议做压测,根据实际情况微调)
③配置的位置在:server.xml -> connector
修改前:
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
修改后:
<Connector port="8080" protocol="HTTP/1.1"
maxConnections=”3000“
connectionTimeout="20000"
redirectPort="8443" />
maxThreads -- 最大线程数
默认值是200
推荐配置500-700(1000相当于我们对处理能力要求很高)
修改后
<Connector port="8080" protocol="HTTP/1.1"
maxConnections=”3000“
maxThreads=“500”
connectionTimeout="20000"
redirectPort="8443" />
acceptCount -- 最大排队等待数
在服务器线程不够用时,会生成一个请求队列,请求队列的最大队列数量就是accptCount
Tomcat最大可以处理的线程数量=maxThreads+acceptCount
推荐比maxThread持平或略小
修改后
<Connector port="8080" protocol="HTTP/1.1"
maxConnections=”3000“
maxThreads=“500”
acceptCount="500"
connectionTimeout="20000"
redirectPort="8443" />