[Dovecot] Performance settings for 500-1000User/per day

Denny Schierz linuxmail at 4lin.net
Mon Jun 20 16:16:53 EEST 2011


hi,

we have 2.0.13 running and most works well, but today we had some minor
problems: The IMAP login process takes sometimes to much time. Over
webmail (Roundcube 0.5.0.3) login wasn't sometimes possible, the normal
clients hasn't any problems, until they login.

We had only ~ 20-30 active accounts, but 50-60 sessions. The most are
Apple products (Ip*/Mac/. ..)because they have 4 sessions or more open.

Also we had ~212 processes with:

dovenull  2065  4364   0 14:50:32 ?           0:00 dovecot/imap-login
vmail  2403  4364   0 14:58:31 ?           0:00 dovecot/imap

So, maybe, it's a miss configuration .... Any suggestions are welcome
for 500-1000User per day.

Our System is a Sun Sunfire X4250 with 16GB memory on Raidz1

Most settings are defaults, so I posting only my changes:

# doveadm -N

# 2.0.13: /usr/local/dovecot/etc/dovecot/dovecot.conf
# OS: SunOS 5.10 i86pc  zfs
auth_cache_negative_ttl = 1 hours
auth_cache_ttl = 1 hours
auth_debug = yes
auth_mechanisms = plain
auth_username_chars =
abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890.-_@
auth_username_format = %Lu
auth_verbose = yes
auth_verbose_passwords = no
base_dir = /var/run/dovecot
debug_log_path = /var/log/dovecot-debug.log
default_login_user = dovenull
default_process_limit = 100
disable_plaintext_auth = no
hostname = hostname.fomain.foo
info_log_path = /var/log/dovecot.log
lda_mailbox_autocreate = yes
lda_mailbox_autosubscribe = no
lda_original_recipient_header = 
login_greeting = I'm alive
mail_debug = yes
mail_gid = vmail
mail_home = /imap/spool/%d/%1n/%n
mail_location = maildir:/imap/spool/%d/%1n/%n:INDEX=/imap/spool/%
d/indexes/%1n/%n
mail_plugin_dir = /usr/local/dovecot/dovecot2/lib/dovecot/
mail_plugins = acl quota fts fts_squat
mail_privileged_group = vmail
mail_temp_dir = /imap/spool/tmp
mail_uid = vmail
managesieve_notify_capability = mailto
managesieve_sieve_capability = fileinto reject envelope
encoded-character vacation subaddress comparator-i;ascii-numeric
relational regex imap4flags copy include variables body enotify
environment mailbox date imapflags
namespace {
  hidden = no
  inbox = yes
  location = 
  prefix = 
  separator = /
  subscriptions = yes
  type = private
}
namespace {
  inbox = no
  location = maildir:/imap/spool/public
  prefix = public/
  separator = /
  subscriptions = no
  type = public
}
passdb {
  args = /usr/local/dovecot/etc/dovecot/conf.d/dovecot-ldap.conf.ext
  driver = ldap
}
passdb {
  args = scheme=plain-md5 username_format=%
Lu /usr/local/dovecot/etc/dovecot/other-users
  driver = passwd-file
}
plugin {
  acl = vfile:/imap/spool/%d/acl
  autocreate = Sent
  autocreate2 = Drafts
  autocreate3 = Trash
  autocreate4 = Spam
  autosubscribe = Sent
  autosubscribe2 = Drafts
  autosubscribe3 = Trash
  autosubscribe4 = Spam
  fts = squat
  fts_squat = partial=4 full=10
  quota = maildir:User quota
  quota_rule2 = Trash:storage=+10%%
  quota_rule3 = Spam:storage=+20%%
  quota_warning = storage=80%
% /usr/local/dovecot/dovecot2/bin/quota-warning.sh 80
  quota_warning2 = storage=90%
% /usr/local/dovecot/dovecot2/bin/quota-warning.sh 90
  quota_warning3 = storage=95%
% /usr/local/dovecot/dovecot2/bin/quota-warning.sh 95
  sieve = /imap/spool/%d/%1n/%n/sieve/default.sieve
  sieve_dir = /imap/spool/%d/%1n/%n/sieve
  sieve_extensions = +imapflags
  trash = /usr/local/dovecot/etc/dovecot/conf.d/dovecot-trash.conf
}
postmaster_address = postmaster at domain.foo
protocols = imap pop3 lmtp sieve
recipient_delimiter = +
rejection_reason = Your message to <%t> was automatically rejected:%n%r
rejection_subject = Rejected: %s
service auth {
  unix_listener /var/spool/postfix/private/auth {
    group = postdrop
    mode = 0600
    user = postfix
  }
}
service imap-login {
  inet_listener imap {
    port = 143
  }
  inet_listener imaps {
    port = 993
    ssl = yes
  }
  process_min_avail = 8
  vsz_limit = 1 G
}
service lmtp {
  unix_listener /var/spool/postfix/private/dovecot-lmtp {
    group = postdrop
    mode = 0666
    user = postfix
  }
}
service managesieve-login {
  inet_listener sieve {
    port = 4190
  }
  inet_listener sieve_deprecated {
    port = 2001
  }
}
service pop3-login {
  inet_listener pop3 {
    port = 110
  }
  inet_listener pop3s {
    port = 995
    ssl = yes
  }
}
ssl_cert = </usr/local/dovecot/etc/dovecot/ssl/imapd.pem
ssl_key = </usr/local/dovecot/etc/dovecot/ssl/imapd.pem
syslog_facility = mail
userdb {
  args = /usr/local/dovecot/etc/dovecot/conf.d/dovecot-ldap.conf.ext
  driver = ldap
}
userdb {
  args = username_format=%Lu /usr/local/dovecot/etc/dovecot/other-users
  driver = passwd-file
}
verbose_proctitle = yes
verbose_ssl = yes
protocol imap {
  imap_idle_notify_interval = 2 mins
  mail_max_userip_connections = 10
  mail_plugins = acl quota fts fts_squat imap_acl imap_quota mail_log
notify autocreate trash listescape fts fts_squat zlib
  ssl_cert = </usr/local/dovecot/etc-testinstanz/dovecot/ssl/imapd.pem
  ssl_key = </usr/local/dovecot/etc-testinstanz/dovecot/ssl/imapd.pem
}
protocol lda {
  mail_plugins = acl quota fts fts_squat sieve quota fts fts_squat
}
protocol pop3 {
  mail_plugins = acl quota fts fts_squat quota fts fts_squat
  pop3_client_workarounds = outlook-no-nuls oe-ns-eoh
  pop3_reuse_xuidl = yes
  ssl_cert = </usr/local/dovecot/etc-testinstanz/dovecot/ssl/pop3d.pem
  ssl_key = </usr/local/dovecot/etc-testinstanz/dovecot/ssl/pop3d.pem
}
protocol lmtp {
  mail_plugins = acl quota fts fts_squat sieve
}

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 198 bytes
Desc: This is a digitally signed message part
URL: <http://dovecot.org/pipermail/dovecot/attachments/20110620/6d9ebabc/attachment-0001.bin>


More information about the dovecot mailing list