This commonly happens due to a resource outage, tipically related to Zimbra's JVM.
Make sure your JVM is set up according to this official guideline, especially the mailboxd_java_heap_size property along with the "-XX:PermSize=" and "-XX:MaxPermSize=" sections of the mailboxd_java_options property.
The official guidelines apply here aswell, but there's a couple things that differ between 64bit and 32bit.
If you are running Zimbra 6.x or a Zimbra 7.x server which has been updated from Zimbra 6.x, chances are that PermSize and MaxPermSize are both set to "128m", which is the bare minimum: change "-XX:PermSize=128m -XX:MaxPermSize=128m" to "-XX:PermSize=196m -XX:MaxPermSize=350m" in the mailboxd_java_options property.
Furtherrmore, 32bit PAE kernels can't have a heap larger than ~2GB (source), so even if you have more than 4GB of RAM setting the heap size to high values can be either useless or counterproductive - we suggest not to exceed 2200MB.
Heap Size and RAM upgrades
In both cases, starting from Zimbra 7.x the heap size is a fixed amount instead of a percentage like it was in Zimbra 6.x and older, and it's not updated automatically. This means that if you add or remove RAM from your server, you'll need to manually adjust the heap size.
Editing JVM settings
All settings mentioned in this article are local configuration properties, and thus can be viewed and with the `zmlocalconfig` Zimbra CLI tool. More information about this tool can be found in your Zimbra release's Administration Guide, while a legacy reference guide can be found here.