1

I am trying to generate 13000 users/threads in 1300 seconds (RAMP up time), it is getting stuck after say executing some 12000 threads and then I have to stop the test which fails the remaining threads/samples(since I have only 1 sample).

The response I am getting on stopping the test 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)

I am not getting what the issue is.. If I am increasing the RAMPUP time, the Response is a HTTP response (200).

Is the issue due to my local machines configuration...?

6
  • What is the configuration of your machine? What is the heapsize specified by you in JMeter?
    – Dhiman
    Commented Aug 18, 2015 at 14:48
  • RAM - 3584 MB CPU - 1 Core I haven't specified any heap size. I don't know how to do it. Could you help with it..?
    – Faiz
    Commented Aug 18, 2015 at 14:53
  • @Faiz To clarify, when you increase the RAMPUP time, everything is ok. Is that correct?
    – user246
    Commented Aug 19, 2015 at 13:01
  • @user246, jmeter hangs after executing some threads. But when I increase the ramp up time, it works well....i mean jmeyer doesn't hang
    – Faiz
    Commented Aug 19, 2015 at 16:47
  • I'm not sure what "13000 users/threads over 1300 seconds (RAMP up time)" means. A user is not a relevant concept to JMeter; JMeter works in terms of the number of threads and the number of requests per thread per unit time. Is the goal to simulate a total of 13000 users over 1300 seconds, i.e. an average of 100 users/second? Or are you trying to ramp up to 13,000 simultaneous threads at the end of 1300 seconds? Or something else?
    – user246
    Commented Aug 19, 2015 at 17:26

3 Answers 3

1

As per the issue mentioned by you, it looks like problem described by JMeterSocketClosed . You should refer this link.

Now for the second part:

Does my CPU and RAM configuration affect my JMeter Performance test results

and about the Heapsize.

Yes, it impacts. Your system configuration too affects your JMeter script and its performance, as depending upon that configuration, your system can generate heavy load and can handle complex scripts. If your configuration is low or you have provided less RAM to JMeter then also you can get issues while running the script.

For increasing the RAM allocated to JMeter, Open the jmeter.bat or jmeter.sh file from the bin directory and then search for the property 'heap' in that file and update its value to 1 GB (1024) or 1.5 GB (1536),

New value should be "set HEAP=-Xms1024m -Xmx1536m" Or "set HEAP=-Xms1024m -Xmx1024m" as by default it is 256 MB only, Xms indicates the starting RAM the jvm will take, and Xmx will be the maximum it is allowed. After that try again running your script and see if this resolves your issue.

Also, if you increase this value too much then you may get error while starting JMeter inside the CMD window, in that case decrease this value of heapsize, 1024 MB value should not cause this issue of JMeter not starting, so you can run JMeter without any problem but for value above this you have to be careful (but in that case too don't worry it will not affect any script or will not corrupt any data, only JMeter will stop working and on reverting it back it will again start working).

Reference taken from

https://stackoverflow.com/questions/25521368/java-net-socketexception-socket-closed-jmeter

1

It does. So do Network and Disk IO. If any of them exceeds threshold of 70-80% of maximum available capacity - it may have negative impact on your load test results.

You should monitor load generator(s) health just like system under test health to make sure that things go as expected.

  1. Make sure that you following recommendations from JMeter Performance and Tuning Tips guide
  2. If it won't help - it may be the case that your system cannot generate 13000 concurrent users and you need to consider Distributed Testing when one JMeter master orchestrates a number of slave instances acting altogether as a single entity.
1
  • I'm not sure Disk IO is relevant on the local machine (JMeter machine) side, unless verbose logging is turned on.
    – user246
    Commented Aug 19, 2015 at 17:28
1

Perhaps the easiest way to narrow down the problem is to divide the JMeter work between two machines. Install JMeter on a second machine and run both at the same time, but have each JMeter instance simulate half as many users. If that fails, the problem is probably on the server side; or if it succeeds, the problem is on the JMeter side.

If the problem is on the JMeter side, and you are constrained to run JMeter on only one machine, you should check the JMeter documentation that Dmitri T mentioned above.

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.