I'm looking for a bit of understanding on just how Undertow handles large numbers of requests coming into a server. Specifically when more requests are being sent in than are being completed. I've been doing some load testing on a CFML app (Lucee Server) where I happen to have my io-threads set to 4 and my worker-threads set to 150. I'm using a monitoring tool (FusionReactor) that shows me the number of currently executing threads at my app and under heavy load I see exact 150 running HTTP threads in my app server, which makes sense since I have 150 worker threads. I'm assuming here that I can't simultaneously process more requests than I have worker threads (please correct if I'm off there)
So assuming I'm thinking that through correctly, what happens to additional requests that are coming into the server at that point? I assume they are being queued somewhere, but
- What is this queue?
- How do I monitor it?
- How big can it get?
- Where do I change the size?
- How long do things stay in there before sending back an error to the HTTP client?
- Can I control what error comes back to the HTTP client in that scenario?
- If I'm using an HTTP/S and AJP listener, do they all share the same settings? Do they share the same queues?
I've done a bit of Googling and reviewed some docs but haven't quite found any definitive information on this, and a lot of info I found was about Wildfly specifically so I wasn't sure how much of it applied.
Thanks!
~Brad
Developer Advocate
Ortus Solutions, Corp