We‘ve set up a pretty nice installation of a Zimbra server, based on Ubuntu 8.04LTS, which among the rest handles NFS homes, Samba shares, local DNS, faxes with HylaFAX + AvantFAX frontend and MySQL. Everything is well fitted together, and in failover configuration thanks to the always beloved Heartbeat + DRBD couple. It’s a very nice setup, which needed some tuning here and there. And maybe I’ll talk about this, someday.
So, after all it took, there was still a little occasional slowdown happening every now and then. The CPU spiked to 100% quite often, say every five minutes or less, causing noticeable unresponsiveness on the Zimbra Web Client.
Searching here and there, most of the documents identify in zmlogger the culprit, the Zimbra Logger service. This was true until 5.x version, or yet until 6.0.2. After that, zmlogger was fixed of the remaining issues, and became a lot more CPU friendly.
So what left? Checks! Zimbra performs services check quite often, requiring much performances. If you never had problems with crashing or failing daemons, you can loosen those executions thus saving CPU for real users.
Become the zimbra user, and execute the following commands:
zmlocalconfig -e zmmtaconfig_interval=6000 zmprov mcf zimbraLogRawLifetime 7d zmprov mcf zimbraLogSummaryLifetime 30d /opt/zimbra/libexec/zmlogprocess
then, again as zimbra user, you must edit the relative crontab row as follows:
crontab -e */60 * * * * /opt/zimbra/libexec/zmstatuslog
Myself, and other users on IRC, reported significant load reduction on the server.