• If you are still using CentOS 7.9, it's time to convert to Alma 8 with the free centos2alma tool by Plesk or Plesk Migrator. Please let us know your experiences or concerns in this thread:
    CentOS2Alma discussion

Horde Webmail Imap-Courier Performance Issue

FernandoI

New Pleskian
Hello,

I have a dedicated server: Intel(R) Xeon(R) CPU X3470 @ 2.93GHz Quad Core
8GB RAM and 2 x 1 TB SATA Hard Drives
Centos 5.8 x32 bits

I've noticed an issue with Horde Webmail performance when an user access a very large mailbox (>1gb) or with a lot of messages (>1000).

The load average starts to grow because of a high CPU usage of an IMAPD process, that sounds normal because in fact imap-courier starts to read the mailbox but the load average can go up to 12.00 or 14.00 causing the server to become sluggish and non responsive.

The process can get stuck in some kind of cycle and that brings sometimes Qmail or Apache down (when multiple large mailbox users access Horde at the same time).

Doing a little research with lsof | grep pID (where pID is the imapd process) I can get the user mailbox, it always shows a 127.0.0.1 connection, so that's a normal Horde Webmail access.
The load average can get even worse, if the user does some message sorting by date, I guess imap-courier has to re-read all the mailbox again, and if it's way to heavy or with tons of messages, consumes a lot of resources.

Anyone with this kind of issue?
Is there any way to tweak horde/imap-courier to assign maybe more RAM or the opposite, limit those processes?
Maybe going to x64 bits can handle better the imap processes?
Maybe use Atmail instead of Horde? I haven't tested if Atmail does the same.
Or maybe going through another completely different webmail service such as Roundcube?

Greetings to everyone and I hope Parallels support can't take a look to this issue.

Fernando I.
 
Changing the Frontend (webmail software) wouldn't change anything, I guess. As long as courier-imapd increases the systemload that much you only can try to add more cpu power. But as courier will surely run the process on a single core it doesn't bargain from additional cpu cores. Trivial solution would be to decrease the mailbox size by deleting or moving messages. One big benefit of using imap instead of pop3 is the possibility of using additional folders on server side.

Two other things might help:

* Make sure the whole RAM is used. An untweaked 32bit system can use up to 4gb of ram. If you want to use more RAM you need either a 64bit system or a 32bit system with PAE.

* Try changing the imap server. Dovecot is a very fast and highly scalable imap/pop3 server but isn't supported by parallels yet. You could try to install it in addition to existing courier-imapd and make it listen to another port. You also had to change the webmail config to make it call the imapd on this unusual port.
 
Thank you Kartoffelsack, I will move my system to a 64bit Centos so I can use the whole 8GB RAM.
I've googled Dovecot and it seems a great alternative to Courier, I'll try to install it as an alternative imap server and maybe assign it to webmail (horde or roundcube) to those large mailbox customers.
Thanks man!
 
Did you check wether the RAM is already in use or not? Most server-OS support PAE, maybe it's enough to switch to an alternate kernel with PAE. Might be less trouble than reinstalling everything and handling 32bit software on a 64bit system.
 
Back
Top