tomcat - 调整 Tomcat 连接器

标签 tomcat

我有一个 Java 网络服务,可以执行一些资源密集型数据处理。我正在尝试调整诸如 maxThreadsmaxConnectionsacceptCount 之类的 Tomcat 连接器属性,以防止服务过载。 我还创建了一个模拟服务生产负载的测试客户端。 在启动客户端后的几分钟内,我看到 Tomcat 以预期的方式运行。下面是这个时期典型的 CPU 负载直方图。 Initial CPU load

然后我看到响应时间增加,并且在短时间内被拒绝的连接数达到 100%。 令我吃惊的是,CPU 负载远未达到 100%,并且具有“线程脉冲”的特征。

CPU thready pulse

当前的连接器设置如下。

<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/

相关文章:

java - 从 Jenkins 运行 .bat 文件

java - tomcat resteasy单例

java - tomcat服务器停止时UI上的异常处理

jsp - 未指定默认命名空间时,函数 getMessageData 必须与前缀一起使用

java - 使用 Lambda 添加 MessageHandler NullPointerException

java - 从命令行在 Java WAR 上下文中运行代码

java - 如何使用 Java、tomcat、eclipse 在 Restful web 服务中调用这么多的 Json 数据

java - 同一逻辑的响应时间在不同的并发请求下快速增长

java - 如何从 Struts2/Servlet 中的 Apache Web 服务器获取客户端 IP 地址?

java - 如何在 SOLR (mini) 中存储关系数据