[Dovecot] Maybe wrong quota recalculation behaviour on overquota delivery try
Luca Palazzo
luca.palazzo at unict.it
Thu Sep 2 20:14:09 EEST 2010
Hi all,
we are experencing some, may be strange, slowness in our dovecot/postfix
mail system.
We have three dovecot 2.0.1 server with LMTP, POP3 and IMAP enabled.
Three shared OCFS2 filesystem are used for mail storage.
We have too a load balancer based on dovecot director in front of these
three server.
Our SMTP cluster receives mail and send by LMTP to load balancer.
Everything work flowless, but sometime, under heavy load, three server
slow down a lot.
Our mail gateway logs a lot of:
status=deferred (host 10.194.1.20[10.194.1.20] said: 451 4.4.0 Remote
server not answering (DATA output timeout)
IP 10.194.1.20 is dovecot director.
Looking at mbox servers log nothing seem to happen, but stracing lmtp
process we can see stat system calls to all Maildir files, as if dovecot
was recalculating quota and regenerating maildirsize file.
It happens always when LMTP tries to deliver a mail to an overquota account.
Is this possible and right? How can we look deeper in system to have
more information?
Best regards
Luca
PS: dovecot configuration for maildir servers is:
# 2.0.1: /etc/dovecot/dovecot.conf
# OS: Linux 2.6.26-2-686-bigmem i686 Debian 5.0.5
auth_master_user_separator = *
auth_verbose = yes
disable_plaintext_auth = no
mail_location = maildir:~/Maildir
mail_plugins = $mail_plugins notify mail_log quota
managesieve_notify_capability = mailto
managesieve_sieve_capability = comparator-i;octet
comparator-i;ascii-casemap fileinto reject envelope encoded-character
vacation subaddress comparator-i;ascii-numeric relational regex
imap4flags copy include variables body enotify environment mailbox date
spamtest spamtestplus virustest
passdb {
args = /etc/dovecot/dovecot-sql.conf.ext
driver = sql
}
plugin {
mail_log_events = delete undelete expunge copy mailbox_delete
mailbox_rename
mail_log_fields = uid box msgid from size
quota = maildir:User quota
quota_warning = storage=95%% quota-warning.sh 95 %u
quota_warning2 = storage=80%% quota-warning.sh 80 %u
sieve = ~/.dovecot.sieve
sieve_dir = ~/sieve
sieve_global_dir = /etc/dovecot/sieve/global/
sieve_global_path = /etc/dovecot/sieve/default.sieve
}
protocols = imap pop3 lmtp sieve
service auth {
unix_listener auth-userdb {
group = dovecot
mode = 0600
user = dovecot
}
}
service director {
inet_listener {
port = 8100
}
}
service lmtp {
inet_listener lmtp {
address = 10.194.1.31 127.0.0.1 ::1
port = 24
}
}
service managesieve-login {
inet_listener sieve {
address = 10.194.1.31 127.0.0.1 ::1
port = 4190
}
process_min_avail = 0
service_count = 1
}
service quota-warning {
executable = script /virtual/shared/quota-warning.sh
unix_listener quota-warning {
user = vmail
}
user = dovecot
}
ssl_cert = </etc/ssl/certs/dovecot.pem
ssl_key = </etc/ssl/private/dovecot.pem
userdb {
args = /etc/dovecot/dovecot-sql.conf.ext
driver = sql
}
verbose_proctitle = yes
protocol lmtp {
mail_plugins = $mail_plugins quota sieve
}
protocol lda {
mail_plugins = $mail_plugins quota
}
protocol imap {
mail_plugins = $mail_plugins quota imap_quota
}
protocol pop3 {
mail_plugins = $mail_plugins quota
}
More information about the dovecot
mailing list