0

Threads - 3000 Ramp up time -60 secs 300 failed threads.. Only 1 HTTP Request sample is there in the script

In response of successful threads a hexadecimal is returned "000F4590000C01014C00006D00010240D9EF"

For failed threads response is

java.net.SocketException: Socket closed at java.net.SocketInputStream.socketRead0(Native Method) at java.net.SocketInputStream.socketRead(Unknown Source) at java.net.SocketInputStream.read(Unknown Source) at java.net.SocketInputStream.read(Unknown Source) at org.apache.http.impl.io.AbstractSessionInputBuffer.fillBuffer(AbstractSessionInputBuffer.java:166) at org.apache.http.impl.io.SocketInputBuffer.fillBuffer(SocketInputBuffer.java:90) at org.apache.http.impl.io.AbstractSessionInputBuffer.readLine(AbstractSessionInputBuffer.java:281) at org.apache.http.impl.conn.DefaultHttpResponseParser.parseHead(DefaultHttpResponseParser.java:92) at org.apache.http.impl.conn.DefaultHttpResponseParser.parseHead(DefaultHttpResponseParser.java:61) at org.apache.http.impl.io.AbstractMessageParser.parse(AbstractMessageParser.java:254) at org.apache.http.impl.AbstractHttpClientConnection.receiveResponseHeader(AbstractHttpClientConnection.java:289) at org.apache.http.impl.conn.DefaultClientConnection.receiveResponseHeader(DefaultClientConnection.java:252) at org.apache.http.impl.conn.ManagedClientConnectionImpl.receiveResponseHeader(ManagedClientConnectionImpl.java:191) at org.apache.jmeter.protocol.http.sampler.MeasuringConnectionManager$MeasuredConnection.receiveResponseHeader(MeasuringConnectionManager.java:201) at org.apache.http.protocol.HttpRequestExecutor.doReceiveResponse(HttpRequestExecutor.java:300) at org.apache.http.protocol.HttpRequestExecutor.execute(HttpRequestExecutor.java:127) at org.apache.http.impl.client.DefaultRequestDirector.tryExecute(DefaultRequestDirector.java:715) at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:520) 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.executeRequest(HTTPHC4Impl.java:517) at org.apache.jmeter.protocol.http.sampler.HTTPHC4Impl.sample(HTTPHC4Impl.java:331) at org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy.sample(HTTPSamplerProxy.java:74) at org.apache.jmeter.protocol.http.sampler.HTTPSamplerBase.sample(HTTPSamplerBase.java:1146) at org.apache.jmeter.protocol.http.sampler.HTTPSamplerBase.sample(HTTPSamplerBase.java:1135) at org.apache.jmeter.threads.JMeterThread.process_sampler(JMeterThread.java:434) at org.apache.jmeter.threads.JMeterThread.run(JMeterThread.java:261) at java.lang.Thread.run(Unknown Source)

Can you please help understand this. Can we say that in 1 min, the AUT can handle only 2700 requests. And this is a bottle neck. since 300 out of 3000 have failed.. By failed i mean, JMeter was not proceeding further after 2700 active threads. It had stuck so I had to stop the run.

2 Answers 2

2

It seems to be server issue, that it is not able to handle heavy load specified by you. But still there can be multiple reasons for your script not working with 3000 users and 60 Ramp up time.

  1. Your Ramp Up value is low then required, try same script with higher value of Ramp Up period. Ramp up value is a significant factor for controlling heavy loads using JMeter or any other load testing tool. You should try same script multiple times with different Ramp Up values.
  2. Increase your JMeter heap size, this value allows JMeter to utilize your machine RAM and then can handle complex script and heavy load. Refer this link Heapsize
  3. Capture server resources using JMeter plugin Perfmon https://stackoverflow.com/questions/4192722/how-to-measure-cpu-and-memory-during-load-test

Resources can be one of the bottle necks for handling this load, capturing this value will give you the indication that where your server is not responding.

  1. Try with different loads and multiple iterations too. Never base your results or report on single iteration of result. Try same iteration/cycle multiple times (3-4 times) and then see the behavior of the application under load. In your case don't think that application can handle 2700 users with 60 Ramp Up, try 3300 or 2500 users with same rampup and see if you that you get.

    • As per your case, if you run for 2500 every user should pass
    • and for same case when 3300 users are there, then too you should get 2700 as pass.

if you get the above results then you can say that 2700 is the threshold value, but before reaching to that conclusion you should try above mentioned scenarios.

  1. Run JMeter in non-GUI mode (I think you already be doing this) and follow other JMeter Best Practices.
0

Looks like you are hitting against the capabilities of the box you are running the suite on. This is a common problem using JMeter as its faiirly resource hungry.

Try running it headless and if that increases your number slightly it may help you reach that elusive 3000.

Below is a guide on ways to accomplich this; https://blazemeter.com/blog/5-ways-launch-jmeter-test-without-using-jmeter-gui

2
  • But i ran the same script with 11000 users but with RAMP UP time as 2100 seconds. It ran successfully. is the case above is bcoz of less ramp up time...?
    – Faiz
    Commented Aug 12, 2015 at 12:13
  • Also can i say that in 60 seconds, my server can handle only 2700. so i need to improve my servers performance....?
    – Faiz
    Commented Aug 12, 2015 at 12:16

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.