performance cyrus imap under 11.1

Hi,

I got an IBM eServer with Suse 11.1. I set up a mailserver using fetchmail, postfix, amavis, spamassassin and finally cyrus for imap. I had the same setup on my older Pentium 4. The mailserver works fine, but the performance when accessing the imap-folders is very bad. I would say it is about 3-4 times slower as with my old box.

Other network-based services (Samba) are fast, so I do not think thats it is a general networking problem.

Thanks for hints and tips!

Do you have to use cyrus imap for some reason? Dovecot is much easier to setup and performs well.

Otherwise if you are using mbox, switch to maildir format instead, it’s faster to handle maildir.

I have been using the same (I think) setup on my old PC and it performed much better.

How can I tell whether I use mbox or maildir?

If your users are collecting from /var/spool/mail/<user> and their mail folders are single files, you are using mbox format.

Looks like mbox, but the path is /var/spool/imap/user/[username]/…

What else can I check?

Cyrus config files? I don’t use cyrus so I couldn’t tell you where to look.

/etc/cyrus.conf:

# standard standalone server implementation

START {
  # do not delete this entry!
  recover       cmd="ctl_cyrusdb -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/lib/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/lib/imap/socket/lmtp" prefork=0

  # this is only necessary if using notifications
#  notify       cmd="notifyd" listen="/var/lib/imap/socket/notify" proto="udp" prefork=1
}

EVENTS {
  # this is required
  checkpoint    cmd="ctl_cyrusdb -c" period=30

  # this is only necessary if using duplicate delivery suppression
  delprune      cmd="cyr_expire -E 3" at=0400

  # this is only necessary if caching TLS sessions
  tlsprune      cmd="tls_prune" at=0400

  # Uncomment the next entry, if you want to automatically remove
  # old messages of EVERY user.
  # This example calls ipurge every 60 minutes and ipurge will delete
  # ALL messages older then 30 days.
  # enter 'man 8 ipurge' for more details

  # cleanup      cmd="ipurge -d 30 -f" period=60
}

It’s exactly the same as on my old server, should be standard, I did not change anything.

Looks like you don’t have a choice, cyrus only supports its own format.

Cyrus IMAP HOWTO