我有一个 Java 网络服务,可以执行一些资源密集型数据处理。我正在尝试调整诸如 maxThreads
、maxConnections
和 acceptCount
之类的 Tomcat 连接器属性,以防止服务过载。
我还创建了一个模拟服务生产负载的测试客户端。
在启动客户端后的几分钟内,我看到 Tomcat 以预期的方式运行。下面是这个时期典型的 CPU 负载直方图。
然后我看到响应时间增加,并且在短时间内被拒绝的连接数达到 100%。 令我吃惊的是,CPU 负载远未达到 100%,并且具有“线程脉冲”的特征。
当前的连接器设置如下。
<Connector port="80" protocol="HTTP/1.1"
connectionTimeout="4000" redirectPort="8443"
minSpareThreads="8" maxThreads="12" maxConnections="24" acceptCount="8" />
有人可以为我的案例建议合适的值吗?
最佳答案
Could anybody please suggest the appropriate values for my case?
找到“合适的”值并不简单。要了解为什么拒绝连接达到 100%,您需要查看那些 maxConnections="24"
是什么正在做。
上面的查找就像发送kill -3 <tomcat_pid>
一样简单并观察 catalina.out
的线程转储输出.也许缺少的资源可能不是 CPU,而是其他资源,例如数据库、错误实现的锁定,或者您甚至没有想过的其他问题。
关于tomcat - 调整 Tomcat 连接器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34726722/