http_listener thread or request handling capacity

May 10, 2017 at 5:30 PM

I stress tested http_listener in Linux (CentOS) with JMeter:
For the listener callback function which is registered through "http_listener::support", all it does is to sleep "2000" milliseconds (2 seconds). Then it will reply a dummy message indicating success.

Since there are "40" threads in Release/src/pplx/threadpool.cpp, if I set "45" concurrent users in JMeter, there is 0 error for more than 10+ hours. I guess Casablanca somehow can queue/cache the extra request and this extra "5" requests is within its capacity.

However, with "200" concurrent users in JMeter, it will start to receive error within one minute of test. I guess the requests has exceeded the capacity of the queue.

Of course, if I do not sleep the callback but return dummy message immediately, Casablanca can handle the much larger concurrency without any error.

Therefore, I'd like to find out what's the capacity of the queue/cache? Whether I can configure it, and where is the code for this capacity? (Is it the setting of "backlog" when creating the socket?)