what you have run into is a limit in the ext2/3 fs on the max number of directory entries you can have.
there are patches out there for cyrus to create a second tier of directories rather then having all mailboxes in the user directory you have user/a user/b user/c etc (or in your case /1 /2 /3 etc) to avoid not only these problems, but also the problem that ext2/3 does sequential seaches through the directory so with this many entries you will already be very slow. also take a look at reiserfs and XFS as possible candidates for you to use for your mailboxes, both of them have very different structures that are designed to handle the large numbers of directories problem better. David Lang On Sun, 24 Feb 2002, Andres Maduro wrote: > Date: Sun, 24 Feb 2002 23:16:06 -0800 > From: Andres Maduro <[EMAIL PROTECTED]> > To: [EMAIL PROTECTED] > Subject: Too many users with Cyrus IMAP > > Hi, > > I have installed Cyrus 2.0.16 on Red Hat 7.2 with the standard SASL > cyrus-sasl-1.5. I have been able to use it successfully and create perl web > administration tools for managing mailboxes. > > I am currently doing a stress test, I need to be able to handle more than > 100 thousand users on this server. I modified Cyrus Imap code so it can > accept numeric accounts which I need as I am creating emails for a cellular > company ([EMAIL PROTECTED]). I made a perl script to create 100000 > accounts. I am using ext3 filesystem under linux. After the user number > 31948 was created, no more accounts where created. Examining the imapd.log, > I found that it was complaining about "too many links error", see below > extract from imapd.log: > > Feb 24 22:45:54 mail imapd[22212]: abort_txn: aborting txn 2147683085 > Feb 24 22:45:54 mail imapd[22212]: myfetch: starting txn 2147683086 > Feb 24 22:45:54 mail imapd[22212]: myfetch: reusing txn 2147683086 > Feb 24 22:45:54 mail imapd[22212]: mystore: reusing txn 2147683086 > Feb 24 22:45:54 mail imapd[22212]: IOERROR: creating directory > /var/spool/imap/user/01000032123: Too many links > > Any help is greatly appreciated. > > It would be nice if we could split /var/spool/imap/user on several > partitions, is this possible ? What options do I have ? > > Following I will show several configurations files I am using: > > /etc/imapd.conf ----------------------------- > configdirectory: /var/imap > partition-default: /var/spool/imap > admins: cyrus root apache andres > sasl_pwcheck_method: sasldb > #sasl_auto_transition: yes > sendmail: /usr/sbin/sendmail > ---------------------------------------------- > > /etc/cyrus.conf ------------------------------------- > # standard standalone server implementation > > START { > # do not delete these entries! > mboxlist cmd="ctl_mboxlist -r" > deliver cmd="ctl_deliver -r" > > # this is only necessary if using idled for IMAP IDLE > # idled cmd="idled" > } > > # UNIX sockets start with a slash and are put into /var/imap/socket > SERVICES { > # add or remove based on preferences > imap cmd="imapd" listen="imap" prefork=0 > imaps cmd="imapd -s" listen="imaps" prefork=0 > pop3 cmd="pop3d" listen="pop3" prefork=0 > pop3s cmd="pop3d -s" listen="pop3s" prefork=0 > sieve cmd="timsieved" listen="sieve" prefork=0 > > # at least one LMTP is required for delivery > # lmtp cmd="lmtpd" listen="lmtp" prefork=0 > lmtpunix cmd="lmtpd" listen="/var/imap/socket/lmtp" prefork=0 > } > > EVENTS { > # this is required > checkpoint cmd="ctl_mboxlist -c" period=30 > > # this is only necessary if using duplicate delivery suppression > delprune cmd="ctl_deliver -E 3" period=1440 > } > ---------------------------------------------------------------------------- > > Best regards, > Andres Maduro >