您的位置:首页 > 编程语言 > Java开发

JMeter测试问题java.net.SocketTimeoutException: connect timed out,Read timed out

2013-07-05 14:39 1141 查看
    最近使用JMeter执行分布式性能测试,对HTTP服务器(Apache2)进行压测。在线程组的线程数增加到一定值时,有概率产生connect timed out和Read timed out错误。关于这两个错误,前者较好解释,后一个错误产生原因尚未有定论。
   先交代下测试计划的设置:

JMeter测试计划线程组设置:Ramp-UP Period为5秒。勾选【delay thread creation until needed 】允许需要时创建线程。循环次数设为10。

线程组包含两个请求,分别是①上传数据,②下载数据。设置两个请求之间sleep 3000ms。其他为缺省设置。

每个请求connect time out:3000ms

每个请求response time out:3000ms

   分别以递增线程数执行测试,由两个agent分别执行。在线程数为500时,产生错误:
错误1:Response message: Non HTTP response message: connect timed out
错误分析:通过Load time值看,由于该线程耗费时间(3002)大于设置的connect time out(3000ms),因此抛出该异常。问题可能是由于服务端有较多请求正在处理(且处理时间较长),导致JMeter不能连接上服务器而产生的。
JMeter原始错误信息:
概要:

Thread Name: 线程组 1-367
Sample Start: 2013-07-05 11:04:17 CST
Load time: 3002
Latency: 0
Size in bytes: 1677
Headers size in bytes: 0
Body size in bytes: 1677
Sample Count: 1
Error Count: 1
Response code: Non HTTP response code: java.net.SocketTimeoutException
Response message: Non HTTP response message: connect timed out
详细信息:

java.net.SocketTimeoutException: connect 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:366)
at java.net.Socket.connect(Socket.java:529)
at sun.net.NetworkClient.doConnect(NetworkClient.java:158)
at sun.net.www.http.HttpClient.openServer(HttpClient.java:395)
at sun.net.www.http.HttpClient.openServer(HttpClient.java:530)
at sun.net.www.http.HttpClient.<init>(HttpClient.java:234)
at sun.net.www.http.HttpClient.New(HttpClient.java:307)
at sun.net.www.http.HttpClient.New(HttpClient.java:324)
at sun.net.www.protocol.http.HttpURLConnection.getNewHttpClient(HttpURLConnection.java:970)
at sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConnection.java:911)
at sun.net.www.protocol.http.HttpURLConnection.connect(HttpURLConnection.java:836)
at org.apache.jmeter.protocol.http.sampler.HTTPJavaImpl.sample(HTTPJavaImpl.java:487)
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(Thread.java:662)

 
错误2:Response message: Non HTTP response message: Read timed out

错误分析:通过返回错误信息看,发生该错误时,JMeter已经连接上服务器,但是产生read time out。从load time(2998)看,所用时间并没有超过设定超时时间(3000),因此错误不大可能是JMeter本身产生的。一种可能是,服务器那边未处理该线程的请求,或者为保证服务能力,断掉了连接。

JMeter原始错误信息:
概要:

Thread Name: 线程组 1-10
Sample Start: 2013-07-05 11:12:45 CST
Load time: 2988
Latency: 0
Size in bytes: 2431
Headers size in bytes: 0
Body size in bytes: 2431
Sample Count: 1
Error Count: 1
Response code: Non HTTP response code: java.net.SocketTimeoutException
Response message: Non HTTP response message: Read timed out
详细信息:

at java.net.SocketInputStream.socketRead0(Native Method)
at java.net.SocketInputStream.read(SocketInputStream.java:129)
at java.io.BufferedInputStream.fill(BufferedInputStream.java:218)
at java.io.BufferedInputStream.read1(BufferedInputStream.java:258)
at java.io.BufferedInputStream.read(BufferedInputStream.java:317)
at sun.net.www.http.HttpClient.parseHTTPHeader(HttpClient.java:697)
at sun.net.www.http.HttpClient.parseHTTP(HttpClient.java:640)
at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1195)
at sun.net.www.protocol.http.HttpURLConnection.getHeaderField(HttpURLConnection.java:2300)
at java.net.URLConnection.getHeaderFieldInt(URLConnection.java:579)
at java.net.URLConnection.getContentLength(URLConnection.java:474)
at org.apache.jmeter.protocol.http.sampler.HTTPJavaImpl.readResponse(HTTPJavaImpl.java:230)
 
几个网文连接:
关于JMeter结果指标值说明的:
http://www.cnblogs.com/Carrie_Liang/archive/2008/11/10/1330997.html
http://asmetg.blog.163.com/blog/static/105828863201111644313362/
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: