Tips on tuning Zimbra for low memory environment
This is more of a question than a how-to... although, I'd like to get input from people that have some experience administering ZCS and, hopefully, be able to compile enough worthwhile information for this thread to help anyone facing the same situation in the future.
I'm running Zimbra on an Ubuntu 8.04 VPS, with 540 megs of RAM. All the tuning guides that I have read are geared towards running Zimbra on a rather large server in a large environment. I have a very simple setup, a handful of users across several domains... I'm also running Apache and Bind on this machine so resources tend to be rather limited.
These are the tweaks I've employed so far... This is Zimbra specific, I've already done all the modifications to Linux that I can.
*Dropped the memory percent on Java and MySQL
# zmlocalconfig -e mailboxd_java_heap_memory_percent=25
# zmlocalconfig -e mysql_memory_percent=20
* Turned off Anti-Virus and Spell-Checking in the Admin UI. (I don't have a need for Anti-Virus as either the clients themselves are running AV protection and/or the majority of my clients are Linux or Mac based)
* Then edited /opt/zimbra/conf/amavisd.conf.in to reflect:
$max_servers = 2; # number of pre-forked children (2..15 is common)
* Dropped the number of HTTP threads that can be started
# zmprov ms mail.example.com zimbraHttpNumThreads 100
* Adjusted POP and IMAP connections
# zmprov ms mail.example.com zimbraPop3NumThreads 100
# zmprov ms mail.example.com zimbraImapNumThreads 100
This is all experimentation for me, I'm new to Zimbra and kind of fumbling around in the dark. So, firstly please correct any errors or oversights that I made. And, of course, feel free to advise on any other modifications that would be helpful...
I have noticed a sizable difference in performance after making the above modifications. I went from using probably 200 megs of swap to just a couple of megs. 540 megs of RAM is not alot considering what Zimbra does, so I expect to be consuming 80 to 90%... my real goal was to get it off the swap.