LIST is slow for 35K mailboxes

Ian G Batten ian.batten at uk.fujitsu.com
Tue Oct 9 09:19:16 EDT 2007


We have clients which issue LIST "" * when they start up.   We think  
we need them to do this, because we are making quite heavy use of  
shared mailboxes so a mailbox may arrive in a hierarchy other than  
INBOX.* to which the user should subscribe.

We have ~35K mailboxes (as reported by ctl_mboxlist -d | wc -l), and  
the LIST takes upwards of 5 minutes.   The imapd spins as much CPU as  
it can get hold of, too.

We assumed this was down to our elderly hardware (a 4x650MHz E450,  
albeit front-ending fast NAS store) but a freshly installed 8-core  
T2000 with 16GB of RAM and only one imapd executing takes a similar  
amount of time.

The production mailserver is now perfectly usable with a load average  
of >100 thanks to the wonders of Solaris 10 FSS, but the five minute  
responses to LIST "" * cause clients some distress.  We had hoped the  
move to the T2000 would solve the problem, but today's testing shows  
the new machine doesn't make a significant difference.

The old machine is running 2.2.8, the new machine is running 2.3.9.   
The old machine has configdir (/var/imap) striped over four spindles  
and then mirrored into four spindles, the new machine has /var/imap  
in ZFS filesystem of four disks, again mirrored in pairs.   The imap  
daemon that is spinning servicing the LIST "" * doesn't appear to do  
any I/O (other than regularly stating mailboxes.db), so I don't think  
disk performance is at issue anyway.

foolstupidclients: 1 would obviously help the performance, but would  
break the shared mailboxes.  I could modify tghe code to provide a  
limited form of foolstupidclients, which would turn on the option for  
users who don't need shared mailboxes but leave it off for those that  
do.  But at root I don't understand why LIST "" * should take any  
longer than, for example, ctl_mboxlist -d.

Before I wade into the code, can anyone make any helpful suggestions?

ian






More information about the Info-cyrus mailing list