« Return to Thread: Load test - socket errors

Load test - socket errors

by Marcio Miranda :: Rate this Message:

Reply to Author | View in Thread

Some parts of this message have been removed. Learn more about Nabble's security policy.

Mule gurus,

 

I’m running a load test using the tcp connector (just one port – endpoint, configured with the length protocol) and JMeter. Setting JMeter to 10 threads and an interval between requests of 100 +-30 ms, everything runs smoothly. If I raise the number of threads to 15, I start to get socket errors like these:

 

INFO  2008-06-24 15:14:38,919 [tcpClient.receiver.5] org.mule.transport.tcp.protocols.DirectProtocol: Socket exception occured: Software caused connection abort: recv failed

 

[800]ERROR 2008-06-24 15:14:38,919 [tcpClient.receiver.5] org.mule.DefaultExceptionStrategy: Caught exception in Exception Strategy: Software caused connection abort: socket write error

java.net.SocketException: Software caused connection abort: socket write error

            at java.net.SocketOutputStream.socketWrite0(Native Method)

            at java.net.SocketOutputStream.socketWrite(SocketOutputStream.java:92)

            at java.net.SocketOutputStream.write(SocketOutputStream.java:136)

            at java.io.BufferedOutputStream.flushBuffer(BufferedOutputStream.java:65)

            at java.io.BufferedOutputStream.flush(BufferedOutputStream.java:123)

            at java.io.DataOutputStream.flush(DataOutputStream.java:106)

            at org.mule.transport.tcp.protocols.LengthProtocol.writeByteArray(LengthProtocol.java:96)

            at org.mule.transport.tcp.protocols.AbstractByteProtocol.write(AbstractByteProtocol.java:81)

            at org.mule.transport.tcp.protocols.AbstractByteProtocol.write(AbstractByteProtocol.java:77)

            at org.mule.transport.tcp.TcpMessageReceiver$TcpWorker.handleResults(TcpMessageReceiver.java:390)

            at org.mule.transport.AbstractReceiverWorker.doRun(AbstractReceiverWorker.java:132)

            at org.mule.transport.AbstractReceiverResourceWorker.doRun(AbstractReceiverResourceWorker.java:51)

            at org.mule.transport.AbstractReceiverWorker.run(AbstractReceiverWorker.java:62)

            at org.mule.work.WorkerContext.run(WorkerContext.java:310)

            at edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1061)

            at edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:575)

            at java.lang.Thread.run(Thread.java:595)

 

 

I don’t know much about socket communication, but I was expecting to get more timeouts instead of socket exceptions. Is this normal under high load scenarios? What can I do to improve the capacity of the system? I could add some extra sockets as inbounds, or even add an additional mule instance, but I believe there are a number of possible improvements before that. Any recommendations?

 

Marcio.

 « Return to Thread: Load test - socket errors