我如何压力测试应用程序?
我试过使用j测量仪,但是在一定数量之后会从j测量仪中得到错误:
java.net.ConnectException: Connection timed out: connect
at java.net.PlainSocketImpl.socketConnect(Native Method)
at java.net.PlainSocketImpl.doConnect(Unknown Source)
at java.net.PlainSocketImpl.connectToAddress(Unknown Source)
at java.net.PlainSocketImpl.connect(Unknown Source)
at java.net.SocksSocketImpl.connect(Unknown Source)
at java.net.Socket.connect(Unknown Source)
at java.net.Socket.connect(Unknown Source)
at sun.net.NetworkClient.doConnect(Unknown Source)
at sun.net.www.http.HttpClient.openServer(Unknown Source)
at sun.net.www.http.HttpClient.openServer(Unknown Source)
at sun.net.www.http.HttpClient.<init>(Unknown Source)
at sun.net.www.http.HttpClient.New(Unknown Source)
at sun.net.www.http.HttpClient.New(Unknown Source)
at sun.net.www.protocol.http.HttpURLConnection.getNewHttpClient(Unknown Source)
at sun.net.www.protocol.http.HttpURLConnection.plainConnect(Unknown Source)
at sun.net.www.protocol.http.HttpURLConnection.connect(Unknown Source)
at org.apache.jmeter.protocol.http.sampler.HTTPJavaImpl.sample(HTTPJavaImpl.java:479)
at org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy.sample(HTTPSamplerProxy.java:62)
at org.apache.jmeter.protocol.http.sampler.HTTPSamplerBase.sample(HTTPSamplerBase.java:1054)
at org.apache.jmeter.protocol.http.sampler.HTTPSamplerBase.sample(HTTPSamplerBase.java:1043)
at org.apache.jmeter.threads.JMeterThread.process_sampler(JMeterThread.java:416)
at org.apache.jmeter.threads.JMeterThread.run(JMeterThread.java:271)
at java.lang.Thread.run(Unknown Source)发布于 2012-04-27 09:37:38
该消息显示,JMeter试图连接到您的应用程序,但无法。这通常意味着Tomcat已经停止响应请求,因为您已经达到了某种限制。Tomcat开始处理请求的线程数量是有限制的,Java施加的限制可以阻止处理请求(很可能是前者)。
JMeter是我发现的用于执行应用程序实际压力的最好工具之一,但是您可能也会发现爪哇旋律是与JMeter协同使用的一个非常宝贵的工具。它可以更深入地查看应用程序正在做什么(例如,它正在使用多少内存、不同页面的响应时间、垃圾回收的频率等等)。它有很多漂亮的图表。
您还应该查看这,以便在调优tomcat时为您提供指针(与官方文档一起确保某些内容在您的情况下仍然有效或适用)。
如果这是一个大量使用的系统,我也会考虑安装Apache本地图书馆 (Tomcat会在您启动它时在日志中提示您)。测试您的应用程序前后,看看它们是否有帮助(他们用C编写Tomcat的某些部分,而不是用Java来提供性能提升。最值得注意的是实际连接处理部分和某些密码功能)。
发布于 2012-04-27 13:53:56
这个数字有多高?
你能告诉我们更多关于上面的应用程序吗?
你计划的部署有多严重?
如果您使用的是Windows,那么有一种叫做半开放连接限制的东西,它在过去曾造成过问题。它类似于您的情况,一切正常工作,直到它达到一定数量的并行连接。
下面是如何实现的我解决了那个问题。
发布于 2012-04-27 08:58:32
我会读到这已经是一个测试,但失败了!
可供选择的工具是apache,或者只是蜘蛛模式下的wget。
或者更复杂的工具,如HP负载运行程序或快速测试pro。
tomcat手册有关于最大同时请求的如下说明,因此您可能必须对系统进行调优才能达到您的要求;
在服务器启动时,此连接器将创建许多请求处理线程(基于为minSpareThreads属性配置的值)。每个传入请求都需要在该请求的持续时间内执行一个线程。如果同时接收的请求多于当前可用的请求处理线程所能处理的请求,则将创建最多配置的额外线程( maxThreads属性的值)。如果同时收到更多的请求,这些请求将被堆叠在连接器创建的服务器套接字中,最高达到配置的最大值( acceptCount属性的值)。任何进一步的同时请求都将收到“连接拒绝”错误,直到有资源处理这些错误为止。 http://tomcat.apache.org/tomcat-5.5-doc/config/http.html
https://serverfault.com/questions/383743
复制相似问题