从 tomcat 5.5 迁移到 tomcat 7.0.37 时,我遇到了一个奇怪的行为。我使用标准的 https 连接器:
<Connector address="x.x.x.x" port="9090" scheme="https" secure="true"
clientAuth="false" sslProtocol="TLS" SSLEnabled="true"
ciphers="SSL_RSA_WITH_RC4_128_MD5,SSL_RSA_WITH_RC4_128_SHA,
TLS_RSA_WITH_AES_128_CBC_SHA,TLS_DHE_RSA_WITH_AES_128_CBC_SHA,
TLS_DHE_DSS_WITH_AES_128_CBC_SHA,SSL_RSA_WITH_3DES_EDE_CBC_SHA,
SSL_DHE_RSA_WITH_3DES_EDE_CBC_SHA,
SSL_DHE_DSS_WITH_3DES_EDE_CBC_SHA"
URIEncoding="UTF-8" keystorePass="x" keystoreFile="x"
connectionTimeout="-1" maxPostSize="-1" />
设置标志connectionTimeout="-1"
后,对 Tomcat 的每个请求都会导致持续 20%-30% 的处理器使用率。因此,在为任何类型的资源(简单的 html 页面、jar 文件)生成 5 个请求后,处理器使用率达到 100%。
当我删除connectionTimeout="-1"
标志时,不会发生这种行为。我使用标准的 Tomcat 7 配置。
有人可以解释发生了什么吗?