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

    最近使用JMeter执行分布式性能测试,对HTTP服务器(Apache2)进行压测。在线程组的线程数增加到一定值时,有概率产生connect timed out和Read timed out错误。关于这两个错误,前者较好解释,后一个错误产生原因尚未有定论。

   先交代下测试计划的设置:

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

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

  3. 每个请求connect time out:3000ms

  4. 每个请求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/

  • 8
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 12
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值