gpt4 book ai didi

java - 使用 JMeter 对 1000 个用户进行负载测试时出现 Apache Tomcat Connection Refused 错误

转载 作者:搜寻专家 更新时间:2023-11-01 03:07:06 25 4
gpt4 key购买 nike

我已经在 linux 和 Apache Tomcat 7.0.42 中部署了一个 Java EE 应用程序

当我使用 JMeter(并发 100 个线程请求)对 100 个用户进行负载测试时,一切正常

但是,一旦我将用户(或线程数)更改为 1000,服务器就会被阻塞,并且它会为 ~600 之后的所有请求提供“连接被拒绝”错误。

我已经对应用程序进行了所有微调,它现在更像是一个静态网页,即使它返回时也会出错。

服务器配置:Ubuntu,8 个 vCPU/32 GB RAM/960 GB HD

PS:同样的应用在AWS(Amazon Web Services)中运行良好,所以你可以排除我的机器运行JMeter(client)的任何问题

    org.apache.http.conn.HttpHostConnectException: Connection to http://a.b.c.d:8080 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:645)
at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:480)
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:286)
at org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy.sample(HTTPSamplerProxy.java:62)
at org.apache.jmeter.protocol.http.sampler.HTTPSamplerBase.sample(HTTPSamplerBase.java:1088)
at org.apache.jmeter.protocol.http.sampler.HTTPSamplerBase.sample(HTTPSamplerBase.java:1077)
at org.apache.jmeter.threads.JMeterThread.process_sampler(JMeterThread.java:428)
at org.apache.jmeter.threads.JMeterThread.run(JMeterThread.java:256)
at java.lang.Thread.run(Unknown Source)
Caused by: java.net.ConnectException: Connection timed out: connect
at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
at java.net.DualStackPlainSocketImpl.socketConnect(Unknown Source)
at java.net.AbstractPlainSocketImpl.doConnect(Unknown Source)
at java.net.AbstractPlainSocketImpl.connectToAddress(Unknown Source)
at java.net.AbstractPlainSocketImpl.connect(Unknown Source)
at java.net.PlainSocketImpl.connect(Unknown Source)
at java.net.SocksSocketImpl.connect(Unknown Source)
at java.net.Socket.connect(Unknown Source)
at org.apache.http.conn.scheme.PlainSocketFactory.connectSocket(PlainSocketFactory.java:127)
at org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:180)
... 12 more

最佳答案

尝试调整 server.xml 中 http 连接器的 maxThreadsacceptCount 属性:

Each incoming request requires a thread for the duration of that request. If more simultaneous requests are received than can be handled by the currently available request processing threads, additional threads will be created up to the configured maximum (the value of the maxThreads attribute). If still more simultaneous requests are received, they are stacked up inside the server socket created by the Connector, up to the configured maximum (the value of the acceptCount attribute). Any further simultaneous requests will receive "connection refused" errors, until resources are available to process them.

引用:http://tomcat.apache.org/tomcat-7.0-doc/config/http.html

关于java - 使用 JMeter 对 1000 个用户进行负载测试时出现 Apache Tomcat Connection Refused 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18636527/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com