As our Zammad implementation gets larger and larger we ran into the issue that we got delayed jobs which lead to delayed e-mails as discussed in several threads already.
The solution to our issue was the following:
But this did not improve CPU load in our system.
We run 4 cores at 2 GHz each. During working hours CPU usage is on average 1 core. Which is a lot for a system that for the user side is “idling”.
Now what happened is due to a setup error on our part the second Session.Job scheduler did not start up, but generally Zammad was continuing its work normally, only GUI updates for each session where not “live” anymore but only on demand if refreshing the browser.
But what we saw now is a Average CPU usage vo 2%! Instead of 100% (1 Core on Linux).
So essentially the whole session GUI update mechanism is hugging up a lot of CPU resources at all times.
Generally this is no problem as the CPU is not doing anything else, but if multiple agents do searches, add customers, answer tickets etc. and create a workload it can happen that we reach all 4 cores maxed out for 10-30 seconds which makes the whole GUI feel sluggish.
At the time where the session scheduler was accidentally off we did not see any such issues and Zammad was always running perfectly fluent no matter the workload.
Now to the question.
TL:DR: Is it somehow possible, or do you guys know strategies how the session job scheduler can be limited in its CPU usage while “real work” is being done on the server?
I have no problem with the scheduler using the available resources while no other important jobs are queued. But it is not great that the system can slow down due to badly managed resources.
Do you know good strategies or do you have tips?
I thought about increasing the “niceness” of the scheduler job to reduce priority, but not sure if that would help at all.