Hi,

I have written an HTTP server using HTTPCore-NIO and currently testing it
with httpcore-ab [1]. I have been seeing very good TPS values so far. But
when I try to send 5KB HTTP messages with 2500 and concurrency level, 50
messages per thread, I'm getting the following exception several times from
httpcore-ab and it results in "Failed requests" in the httpcore-ab output.
No exceptions are displayed from the server side. Hence, I think the server
is rejecting some socket connections because it's already fully loaded.

I'm running the server and load generator on two server machines that are
connected with Gigabit Ethernet. Each server has 16 CPU cores, 16 GB memory
etc.

I have increased the socket timeout in both httpcore-ab and server side
ListeningIOReactor to 360000. 16 threads are allocated for the reactor.
Messages received by the server are processed in a separate worker pool
which has ~500 threads. I have also increased the open file limit of my OS
(Debian) to 65535.

Is there any tuning parameter of HTTPCore that I can used to get rid of
this exception? Perhaps, something similar to "acceptQueueSize" in Jetty
 [2]?

[1]
https://svn.apache.org/repos/asf/httpcomponents/httpcore/tags/4.1.3/httpcore-ab
[2] http://docs.codehaus.org/display/JETTY/Configuring+Connectors
[3]
java.net.ConnectException: Connection 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 java.net.Socket.connect(Socket.java:478)
at java.net.Socket.<init>(Socket.java:375)
at java.net.Socket.<init>(Socket.java:189)
at org.apache.http.benchmark.BenchmarkWorker.run(BenchmarkWorker.java:207)
at
java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:662)
java.net.ConnectException: Connection 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 java.net.Socket.connect(Socket.java:478)
at java.net.Socket.<init>(Socket.java:375)
at java.net.Socket.<init>(Socket.java:189)
at org.apache.http.benchmark.BenchmarkWorker.run(BenchmarkWorker.java:207)
at
java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:662)

Thanks & Regards,
-- 

Sadeep Jayasumana****

Email: [email protected]****

Phone: +94-77-2266507

Reply via email to