我负载testing运行在Tomcat(6.0.33)上的应用程序。 随着我增加用户数量,我开始遇到连接问题。 这是jMeter返回的内容。 我对Tomcat相当陌生,任何人都可以提供任何build议,甚至可以开始寻找?
org.apache.http.conn.HttpHostConnectException: Connection to https://example.domain.edu refused at org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:190) at org.apache.http.impl.conn.ManagedClientConnectionImpl.open(ManagedClientConnectionImpl.java:294) at org.apache.http.impl.client.DefaultRequestDirector.tryConnect(DefaultRequestDirector.java:640) at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:479) at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:906) at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:805) at org.apache.jmeter.protocol.http.sampler.HTTPHC4Impl.sample(HTTPHC4Impl.java:284) at org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy.sample(HTTPSamplerProxy.java:62) at org.apache.jmeter.protocol.http.sampler.HTTPSamplerBase.sample(HTTPSamplerBase.java:1075) at org.apache.jmeter.protocol.http.sampler.HTTPSamplerBase.sample(HTTPSamplerBase.java:1064) at org.apache.jmeter.threads.JMeterThread.process_sampler(JMeterThread.java:426) at org.apache.jmeter.threads.JMeterThread.run(JMeterThread.java:255) at java.lang.Thread.run(Thread.java:680) Caused by: java.net.ConnectException: Operation timed out at java.net.PlainSocketImpl.socketConnect(Native Method) at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:351) at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:213) at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:200) at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:432) at java.net.Socket.connect(Socket.java:529) at com.sun.net.ssl.internal.ssl.SSLSocketImpl.connect(SSLSocketImpl.java:570) at org.apache.http.conn.ssl.SSLSocketFactory.connectSocket(SSLSocketFactory.java:549) at org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:180) ... 12 more
您已经在此build立了超过阈值数量的用户,您的服务对新连接无响应。 您需要在应用程序服务器上使用统计信息和日志logging来确定导致该问题的原因。 悬挂新的连接可能是任何资源争夺的结果:
CPU,内存或IO(vmstat将帮助这些)
你可能会打开一个ulimit打开套接字,文件或进程的最大数量(这将被logging到系统日志)
您的应用程序可能会卡住等待访问外部资源,如数据库,本身可能会遭受上述任何资源争用问题。
简而言之,负载testing(至less为了优化负载下的服务性能)只有在您仔细监控您正在testing的服务以便量化其结果时才有用。 通过这种监控,负载testing只能告诉你服务不再可用的阈值。
你应该增加在tomcatconfiguration中的最大线程数。
这是一个解释: http : //tomcat-configure.blogspot.com.es/2009/01/tomcat-maxthreads-configuration.html