We had 2 CF servers behind a load balancer. We are now migrating to Lucee. As part of this, we migrated one server to Lucee; so now we have 1 CF and 1 Lucee server.
The server serves just a couple of web pages… with each request taking just a few millisecs. But the server gets a ton of requests… with requests peaking at a few thousand requests/minute a few times in a day.
I have request throttling configured in CF as well as Lucee. So ideally I should be seeing some requests coming through steadily and the other requests in a queue. But what we observe is that CF handles the requests/queuing properly whereas Lucee does not seem to be doing that. Lucee seems to be trying to process all requests at the same time and eventually starts throwing 503 errors.
In Lucee Admin I have Maximal concurrent requests set at 100. and concurrent request timeout at 5 minutes.
In CF I have “maximum number of simultaneous template requests” set to 25. And “Timeout requests waiting in queue after” 60 secs.
Even tho these numbers are different right now I have tried 25 requests/60 secs in Lucee also but it did not make any difference.
The IIS app pool/site settings are the same on both servers.
Tomcat/ Boncode max connections is at 1000.
Any pointers on what else I need to configure to get Lucee to queue excessive requests just like CF and not try to process everything at the same time?
I just tested the queue with jmeter and tomcat directly and it works as expected.
With 2 cores, Lucee can only process 2 requests at a time, unless you are using an external service like db or S3 there’s only so much a small server can do concurrently. With external services threads can sleep while waiting for responses
As for 6.2.2 why waste your time on tech debt?
Use jcmd thread.print to check what’s actually going on, you might have threads blocking each other
could you add a button to analyse cpu/memory on the machine and give an advisory to what settings should be with a ‘yeah do that’ button also, that could be a great feature