龙空技术网

Tomcat性能调优:线程设置

IT小胖豆 1689

前言:

今天你们对“并发2000需要几台tomcat”大约比较关心,我们都需要分析一些“并发2000需要几台tomcat”的相关知识。那么小编在网络上网罗了一些对于“并发2000需要几台tomcat””的相关知识,希望小伙伴们能喜欢,你们快快来了解一下吧!

说明:一般线程与虚拟内存JVM设置同步设置,两者存在对应关系。

1.线程概念说明

maxThreads:此连接器将创建的请求处理线程的最大数量, 即可以处理的同时请求的最大数量,默认值为200。

minSpareThreads:终保持运行状态的最小线程数。 这包括活动线程和空闲线程。 如果未指定,则使用默认值10。

maxConnections: 服务器在任何给定时间将接受和处理的最大连接数。 对于BIO,除非使用执行程序,否则默认值为maxThreads的值,在这种情况下,默认值为执行程序的maxThreads的值。 对于NIO,默认值为10000。对于APR/native,默认值为8192。仅对于NIO,将值设置为-1将禁用maxConnections功能,并且不计算连接数。(PS:一般不需要设置)

acceptCount:使用所有可能的请求处理线程时,传入连接请求的最大队列长度。 队列已满时收到的任何请求都将被拒绝。 默认值为100。

2.线程设置

<Connector port="8080" protocol="HTTP/1.1"		maxThreads="600"		acceptCount="300"		enableLookups="false"		connectionTimeout="20000"		redirectPort="8443" URIEncoding="UTF-8"/>
3.线程数设置建议

为了达到最优配置,我进行了通用业务系统登录及首页待办、查询、统计内容加载等场景的压力实测,建议:

在tomcat虚拟内存为2G,建议设置最大线程为500~600,可支持最大并发量为500~600在tomcat虚拟内存为4G,建议设置最大线程为600~700,可支持最大并发量为600~700

如果需要达到自身业务系统的最优配置,还是需要根据自身业务系统的场景进行逐步压力实测,再根据结果进行线程数的上调或下调。

注意:另外,在另一篇文章“Tomcat性能调优:虚拟内存JVM设置”也提到“tomcat虚拟内存JVM最大设置为4G。经过实测4G以上性能提升极小,考虑nginx+tomcat集群做负载均衡。

4.最佳线程数的获取通过用户慢慢递增来进行性能压测,观察QPS,响应时间根据公式计算:服务器端最佳线程数量=((线程等待时间+线程cpu时间)/线程cpu时间) * cpu数量单用户压测,查看CPU的消耗,然后直接乘以百分比,再进行压测,一般这个值的附近应该就是最佳线程数量。操作系统限制:Windows每个进程中的线程数不允许超过2000,Linux每个进程中的线程数不允许超过1000

标签: #并发2000需要几台tomcat