ml_dovecot at thorsten-reichelt.de
2020-Dec-27  14:11 UTC
Very slow mail download/notification with dovecot 2.3.7 and Thunderbird
Hi!
I know that there are many results if I search for "dovecot thunderbird
very slow" on Google but none of them helped me with my problem. :(? (I
already posted this on February 2020, but forgot to answer. O.o)
I am running Ubuntu 20.04 (4GB RAM, 40GB HDD with EXT4) server with the
following software:
- Dovecot 2.3.7.2
---- All accounts are using Maildir
---- Sieve filters
- Postfix 3.4.13
---- with opendkim, spamassassin, razor, pyzor, ....
And as IMAP client I am using Thunderbird 78.6 on Windows 10.
Sieve is used to sort some incoming mails into my 228 folders (56 INBOX.
folders and its subfolders (output of "find .INBOX.* -maxdepth 4 -type d
-print |wc -l")).? The total size of my Maildir directory is 5.5GB.
My problem is that it always takes very very long to synchronize the
INBOX and its subfolders. Even if there are only a few new messages to
be downloaded. Sometimes Thunderbird outputs something like "downloading
message 1 of 19" and it takes at least 60 seconds to download all of
them. None of these mails is larger than 5kB. And sometimes it seems
that the transfer is suspended for a long time and it takes >5 Minutes
to synchronize only a few mails. :(
And it seems that some folders are never updated in TB. In example I
sort all messages from this list into a
"INBOX.Mailinglists.ML-Dovecot"
subfolder by using a simple sieve rule. But even after 10 minutes TB
thinks that there are no new messages. As soon as I click on the
ML-Dovecot folder I see in the /var/log/dovecot-info.log file that TB
logs on to the server and then displays hundreds, of new messages. I
checked twice but I have subscribed to all 228 folders.
How can I find the bottleneck?
Is there a test tool available that simulates a simple mail client and
can analyse an IMAP server?
This is the output of "dovecot -n":
==============================# 2.3.7.2 (3c910f64b): /etc/dovecot/dovecot.conf
# Pigeonhole version 0.5.7.2 ()
# OS: Linux 5.4.0-54-generic x86_64 Ubuntu 20.04.1 LTS
# Hostname: mail.XXXXXXX.de
auth_mechanisms = plain login
debug_log_path = /var/log/dovecot-debug.log
default_client_limit = 15653
default_process_limit = 5200
first_valid_uid = 150
info_log_path = /var/log/dovecot-info.log
last_valid_uid = 150
lda_original_recipient_header = X-Original-To
log_path = /var/log/dovecot-error.log
login_log_format_elements = user=<%u> method=%m rip=%r lip=%l mpid=%e %c
%k
mail_gid = mail
mail_home = /var/vmail/%d/%n
mail_location = maildir:~/Maildir
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 index ihave duplicate mime foreverypart extracttext
namespace inbox {
? inbox = yes
? location ? mailbox Archive {
??? special_use = \Archive
? }
? mailbox Drafts {
??? special_use = \Drafts
? }
? mailbox Junk {
??? special_use = \Junk
? }
? mailbox Sent {
??? special_use = \Sent
? }
? mailbox "Sent Messages" {
??? special_use = \Sent
? }
? mailbox Trash {
??? special_use = \Trash
? }
? prefix }
passdb {
? args = /etc/dovecot/dovecot-sql.conf.ext
? driver = sql
}
plugin {
? sieve = ~/.dovecot.sieve
? sieve_default = /var/vmail/global.sieve
? sieve_dir = ~/sieve
}
postmaster_address = thorsten at MY_DOMAIN.TLD
protocols = " imap sieve pop3"
service auth {
? unix_listener /var/spool/postfix/private/auth {
??? group = postfix
??? mode = 0666
??? user = postfix
? }
? unix_listener auth-userdb {
??? group = mail
??? mode = 0666
??? user = vmail
? }
}
service imap-login {
? inet_listener imap {
??? port = 143
? }
? inet_listener imaps {
??? port = 993
??? ssl = yes
? }
? process_limit = 50
? process_min_avail = 2
? service_count = 20
}
service imap {
? process_limit = 1024
}
service managesieve-login {
? inet_listener sieve {
??? port = 4190
? }
? service_count = 0
}
ssl_cert = </etc/ssl/mail/mail.XXXXXXX.de.fullchain.pem
ssl_cipher_list
ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384
ssl_dh = # hidden, use -P to show it
ssl_key = # hidden, use -P to show it
ssl_min_protocol = TLSv1.2
syslog_facility = local5
userdb {
? args = /etc/dovecot/dovecot-sql.conf.ext
? driver = sql
}
protocol lda {
? deliver_log_format = msgid=%m: %$
? mail_plugins = " sieve"
? rejection_reason = Your message to <%t> was automatically rejected:%n%r
}
protocol imap {
? imap_client_workarounds = tb-extra-mailbox-sep
? imap_idle_notify_interval = 10 mins
? mail_max_userip_connections = 100
? mail_plugins }
protocol sieve {
? info_log_path = /var/log/dovecot-sieve.log
? mail_max_userip_connections = 100
? managesieve_implementation_string = Dovecot Pigeonhole
? managesieve_max_line_length = 65536
==============================
Output of "free -h":
==============================free -h
????????????? total??????? used??????? free????? shared? buff/cache??
available
Mem:????????? 3.8Gi?????? 1.7Gi?????? 1.1Gi??????? 10Mi??????
958Mi?????? 1.7Gi
Swap:???????? 1.0Gi?????? 375Mi?????? 648Mi
==============================
Thank you very much!
Thorsten
Juri Haberland
2020-Dec-27  15:11 UTC
Re: Very slow mail download/notification with dovecot 2.3.7 and Thunderbird
On 27/12/2020 15:11, ml_dovecot at thorsten-reichelt.de wrote:> And it seems that some folders are never updated in TB. In example I > sort all messages from this list into a "INBOX.Mailinglists.ML-Dovecot" > subfolder by using a simple sieve rule. But even after 10 minutes TB > thinks that there are no new messages. As soon as I click on the > ML-Dovecot folder I see in the /var/log/dovecot-info.log file that TB > logs on to the server and then displays hundreds, of new messages. I > checked twice but I have subscribed to all 228 folders.I can't help you with your performance problem, but for Thunderbird to check all folders, you need to set "mail.check_all_imap_folders_for_new" to 'true' in the Thunderbird config editor. Regards, Juri