Your benchmark is likely unrealistic - it should use consistent connections
to give any kind of realistic numbers (clients always keep connections).
ab is also not the best tool around (hasn't been since a long time), please
try `wrk`.

Your benchmark is effectively benchmarking materialization time of new
connections - which is a known worst case scenario foe Akka HTTP.
We're in the middle of optimising this currently by the way, with faster
materialization, however it still is not realistic if you want to measure
RPS - then you should use ab with -k or use a proper tool like wrk.

Happy hakking.

-- 
Konrad `ktoso` Malawski
Akka <http://akka.io> @ Lightbend <http://lightbend.com>

On 6 December 2016 at 10:42:42, Charley Kayser (kayser.char...@gmail.com)
wrote:

Hi

I'm testing akka-http and I try to measure how many concurrent connections
it can handle on my company's Linux VM (x86_64, 4 CPU).
I use the simple http server implementation provided in the akka-http
documentation which you can find in the following github project created
for illustrating this ticket: https://github.com/jycr/simple-akka-http

Using ApacheBench to stress the application (with option -c 2000), I
measure that the server can't handle more than around 1000 requests per
second.
Without success I changed the following to try to go over this limit:

   - updated the Linux settings to allow more than 4000 TCP concurrent
   connections (ulimit -n, sysctl net.core.somaxconn, ifconfig txqueuelen,
   sysctl net.core.netdev_max_backlog, sysctl net.ipv4.tcp_max_syn_backlog)
   - set akka.http.server.max-connections to 2048

I used YourKit to monitor the app and I could see the number of open
sockets didn't go over the limit of 1200 open sockets per second. This
makes me think the problem could be located in akka-io or in some kind of
back-pressure feature which tell the underlying nio.Selector not to accept
too many connections at once.

What am I missing here ?

Thanks for your help

Attached a screenshot of YourKit showing the socket metrics


<https://lh3.googleusercontent.com/-iYRnadJsvyI/WEaGyJbP_EI/AAAAAAABHvA/JZcloGEdjDsLXtEhmvWTU3P-VODyWkS6QCLcB/s1600/yourkit_sockets.png>


--
>>>>>>>>>> Read the docs: http://akka.io/docs/
>>>>>>>>>> Check the FAQ:
http://doc.akka.io/docs/akka/current/additional/faq.html
>>>>>>>>>> Search the archives: https://groups.google.com/group/akka-user
---
You received this message because you are subscribed to the Google Groups
"Akka User List" group.
To unsubscribe from this group and stop receiving emails from it, send an
email to akka-user+unsubscr...@googlegroups.com.
To post to this group, send email to akka-user@googlegroups.com.
Visit this group at https://groups.google.com/group/akka-user.
For more options, visit https://groups.google.com/d/optout.

-- 
>>>>>>>>>>      Read the docs: http://akka.io/docs/
>>>>>>>>>>      Check the FAQ: 
>>>>>>>>>> http://doc.akka.io/docs/akka/current/additional/faq.html
>>>>>>>>>>      Search the archives: https://groups.google.com/group/akka-user
--- 
You received this message because you are subscribed to the Google Groups "Akka 
User List" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to akka-user+unsubscr...@googlegroups.com.
To post to this group, send email to akka-user@googlegroups.com.
Visit this group at https://groups.google.com/group/akka-user.
For more options, visit https://groups.google.com/d/optout.

Reply via email to