« Return to Thread: Load test - socket errors
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
| Free embeddable forum powered by Nabble | Forum Help |