[Dovecot] Dovecot 2.0.9: Thunderbird 3.1.9: Very slow while open sent folder with many (4k>) mails

Robert Schetterer robert at schetterer.org
Thu Mar 24 21:09:50 EET 2011


Am 24.03.2011 17:35, schrieb Denny Schierz:
> hi,
> 
> one customer told us, that he has performance problem in his Thunderbird
> 3.1.9, while open his sent folder, which has round about 4000 mails in
> it, and 20k in his Inbox. For example TB, tries to sync the sent-folder
> list (over SSL) from the sent folder for now over 15min. 
> 
> In the log, I can't see any strange things, so for me, Dovecot works ok.
> 
> Maybe, I should use better cache options?
> 
> Now he tries to move many messages to separate folders, but thats also a
> bit slow. So, is it a TB problem, with so many messages?

if he is one under many the problem may sits at him
i havent seen this slowness in TB 3.1.9
but in former versions, but that wasnt only in sent folder, it was for
all folders with many mails

also clamav-milter etc slows down a little bit
at my setup, as well as some networking problems sometimes
so the failure can be everywhere

i would recommend test with a fresh tb install with small or no firewall
settings on perhaps same local network with the server
if it "feels" there slow too, then try tune dovecot look top logs etc ,
upgrade memory etc

if not , analyse
the clients  setup , what is his internet troughput , is it shared ,
what firewall is he using, what OS, how many accounts , does he share
his conect etc

sorry no time for looking your setup now

> 
> 
> Our config:
> 
> auth_anonymous_username = anonymous
> auth_cache_negative_ttl = 1 hours
> auth_cache_size = 0
> auth_cache_ttl = 1 hours
> auth_debug = no
> auth_debug_passwords = no
> auth_default_realm = 
> auth_failure_delay = 2 secs
> auth_first_valid_uid = 500
> auth_gssapi_hostname = 
> auth_krb5_keytab = 
> auth_last_valid_uid = 0
> auth_master_user_separator = 
> auth_mechanisms = plain
> auth_realms = 
> auth_socket_path = auth-userdb
> auth_ssl_require_client_cert = no
> auth_ssl_username_from_cert = no
> auth_use_winbind = no
> auth_username_chars =
> abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890.-_@
> auth_username_format = %Lu
> auth_username_translation = 
> auth_verbose = no
> auth_verbose_passwords = no
> auth_winbind_helper_path = /usr/bin/ntlm_auth
> auth_worker_max_count = 30
> base_dir = /var/run/dovecot
> config_cache_size = 1 M
> debug_log_path = /var/log/dovecot-debug.log
> default_client_limit = 1000
> default_idle_kill = 60
> default_internal_user = dovecot
> default_login_user = dovenull
> default_process_limit = 100
> default_vsz_limit = 256 M
> deliver_log_format = msgid=%m: %$
> dict_db_config = 
> director_doveadm_port = 0
> director_mail_servers = 
> director_servers = 
> director_user_expire = 15 mins
> disable_plaintext_auth = no
> dotlock_use_excl = no
> doveadm_socket_path = doveadm-server
> doveadm_worker_count = 0
> first_valid_gid = 1
> first_valid_uid = 500
> hostname = xfire05.rbg.informatik.tu-darmstadt.de
> imap_capability = 
> imap_client_workarounds = 
> imap_id_log = 
> imap_id_send = 
> imap_idle_notify_interval = 2 mins
> imap_logout_format = bytes=%i/%o
> imap_max_line_length = 64 k
> info_log_path = /var/log/dovecot.log
> last_valid_gid = 0
> last_valid_uid = 0
> lda_mailbox_autocreate = yes
> lda_mailbox_autosubscribe = no
> lda_original_recipient_header = 
> libexec_dir = /usr/local/dovecot/2.0.9/libexec/dovecot
> listen = *, ::
> lmtp_proxy = no
> lmtp_save_to_detail_mailbox = no
> lock_method = fcntl
> log_path = syslog
> log_timestamp = "%b %d %H:%M:%S "
> login_access_sockets = 
> login_greeting = I'm alive
> login_log_format = %$: %s
> login_log_format_elements = user=<%u> method=%m rip=%r lip=%l mpid=%e %c
> login_trusted_networks = 
> mail_access_groups = 
> mail_attachment_dir = 
> mail_attachment_fs = sis posix
> mail_attachment_hash = %{sha1}
> mail_attachment_min_size = 128 k
> mail_cache_fields = flags
> mail_cache_min_mail_count = 0
> mail_chroot = 
> mail_debug = no
> mail_fsync = optimized
> mail_full_filesystem_access = no
> 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_log_prefix = "%s(%u): "
> mail_max_keyword_length = 50
> mail_max_lock_timeout = 0
> mail_max_userip_connections = 10
> mail_never_cache_fields = imap.envelope
> mail_nfs_index = no
> mail_nfs_storage = no
> mail_plugin_dir = /usr/local/dovecot/dovecot2/lib/dovecot/
> mail_plugins = acl quota
> mail_privileged_group = vmail
> mail_save_crlf = no
> mail_temp_dir = /imap/spool/tmp
> mail_uid = vmail
> mailbox_idle_check_interval = 30 secs
> mailbox_list_index_disable = no
> maildir_copy_with_hardlinks = yes
> maildir_stat_dirs = no
> maildir_very_dirty_syncs = no
> managesieve_client_workarounds = 
> managesieve_implementation_string = Dovecot Pigeonhole
> managesieve_logout_format = bytes=%i/%o
> managesieve_max_compile_errors = 5
> managesieve_max_line_length = 65536
> 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
> master_user_separator = 
> mbox_dirty_syncs = yes
> mbox_dotlock_change_timeout = 2 mins
> mbox_lazy_writes = yes
> mbox_lock_timeout = 5 mins
> mbox_min_index_size = 0
> mbox_read_locks = fcntl
> mbox_very_dirty_syncs = no
> mbox_write_locks = dotlock fcntl
> mdbox_preallocate_space = no
> mdbox_rotate_interval = 0
> mdbox_rotate_size = 2 M
> mmap_disable = no
> namespace {
>   hidden = no
>   inbox = yes
>   list = yes
>   location = 
>   prefix = 
>   separator = /
>   subscriptions = yes
>   type = private
> }
> namespace {
>   hidden = no
>   inbox = no
>   list = yes
>   location = maildir:/imap/spool/public
>   prefix = public/
>   separator = /
>   subscriptions = no
>   type = public
> }
> passdb {
>   args
> = /usr/local/dovecot/dovecot2/etc/dovecot/conf.d/dovecot-ldap.conf.ext
>   deny = no
>   driver = ldap
>   master = no
>   pass = no
> }
> plugin {
>   acl = vfile:/imap/spool/%d/acl
>   autocreate = Sent
>   autocreate2 = Drafts
>   autocreate3 = Trash
>   autocreate4 = Spam
>   autosubscribe = Sent
>   autosubscribe2 = Drafts
>   autosubscribe3 = Trash
>   autosubscribe4 = Spam
>   quota = maildir:User quota
>   quota_rule2 = Trash:storage=+10%%
>   quota_rule3 = Spam:storage=+20%%
>   quota_warning = storage=80%
> % /usr/local/dovecot/dovecot/bin/quota-warning.sh 80
>   quota_warning2 = storage=90%
> % /usr/local/dovecot/dovecot/bin/quota-warning.sh 90
>   quota_warning3 = storage=95%
> % /usr/local/dovecot/dovecot/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/dovecot/etc/conf.d/dovecot-trash.conf
> }
> pop3_client_workarounds = 
> pop3_enable_last = no
> pop3_fast_size_lookups = no
> pop3_lock_session = no
> pop3_logout_format = top=%t/%p, retr=%r/%b, del=%d/%m, size=%s
> pop3_no_flag_updates = no
> pop3_reuse_xuidl = no
> pop3_save_uidl = no
> pop3_uidl_format = %08Xu%08Xv
> postmaster_address = postmaster at rbg.informatik.tu-darmstadt.de
> protocols = imap pop3 lmtp sieve
> quota_full_tempfail = no
> recipient_delimiter = +
> rejection_reason = Your message to <%t> was automatically rejected:%n%r
> rejection_subject = Rejected: %s
> sendmail_path = /usr/sbin/sendmail
> service anvil {
>   chroot = empty
>   client_limit = 0
>   drop_priv_before_exec = no
>   executable = anvil
>   extra_groups = 
>   group = 
>   idle_kill = 4294967295 secs
>   privileged_group = 
>   process_limit = 1
>   process_min_avail = 1
>   protocol = 
>   service_count = 0
>   type = anvil
>   unix_listener anvil-auth-penalty {
>     group = 
>     mode = 0600
>     user = 
>   }
>   unix_listener anvil {
>     group = 
>     mode = 0600
>     user = 
>   }
>   user = $default_internal_user
>   vsz_limit = 18446744073709551615 B
> }
> service auth-worker {
>   chroot = 
>   client_limit = 1
>   drop_priv_before_exec = no
>   executable = auth -w
>   extra_groups = 
>   group = 
>   idle_kill = 0
>   privileged_group = 
>   process_limit = 0
>   process_min_avail = 0
>   protocol = 
>   service_count = 1
>   type = 
>   unix_listener auth-worker {
>     group = 
>     mode = 0600
>     user = $default_internal_user
>   }
>   user = 
>   vsz_limit = 18446744073709551615 B
> }
> service auth {
>   chroot = 
>   client_limit = 4096
>   drop_priv_before_exec = no
>   executable = auth
>   extra_groups = 
>   group = 
>   idle_kill = 0
>   privileged_group = 
>   process_limit = 1
>   process_min_avail = 0
>   protocol = 
>   service_count = 0
>   type = 
>   unix_listener /var/spool/postfix/private/auth {
>     group = postdrop
>     mode = 0600
>     user = postfix
>   }
>   unix_listener auth-client {
>     group = 
>     mode = 0600
>     user = 
>   }
>   unix_listener auth-login {
>     group = 
>     mode = 0600
>     user = $default_internal_user
>   }
>   unix_listener auth-master {
>     group = 
>     mode = 0600
>     user = 
>   }
>   unix_listener auth-userdb {
>     group = 
>     mode = 0600
>     user = 
>   }
>   unix_listener login/login {
>     group = 
>     mode = 0666
>     user = 
>   }
>   user = $default_internal_user
>   vsz_limit = 18446744073709551615 B
> }
> service config {
>   chroot = 
>   client_limit = 0
>   drop_priv_before_exec = no
>   executable = config
>   extra_groups = 
>   group = 
>   idle_kill = 0
>   privileged_group = 
>   process_limit = 0
>   process_min_avail = 0
>   protocol = 
>   service_count = 0
>   type = config
>   unix_listener config {
>     group = 
>     mode = 0600
>     user = 
>   }
>   user = 
>   vsz_limit = 18446744073709551615 B
> }
> service dict {
>   chroot = 
>   client_limit = 1
>   drop_priv_before_exec = no
>   executable = dict
>   extra_groups = 
>   group = 
>   idle_kill = 0
>   privileged_group = 
>   process_limit = 0
>   process_min_avail = 0
>   protocol = 
>   service_count = 0
>   type = 
>   unix_listener dict {
>     group = 
>     mode = 0600
>     user = 
>   }
>   user = $default_internal_user
>   vsz_limit = 18446744073709551615 B
> }
> service director {
>   chroot = 
>   client_limit = 0
>   drop_priv_before_exec = no
>   executable = director
>   extra_groups = 
>   fifo_listener login/proxy-notify {
>     group = 
>     mode = 00
>     user = 
>   }
>   group = 
>   idle_kill = 4294967295 secs
>   inet_listener {
>     address = 
>     port = 0
>     ssl = no
>   }
>   privileged_group = 
>   process_limit = 1
>   process_min_avail = 0
>   protocol = 
>   service_count = 0
>   type = 
>   unix_listener director-admin {
>     group = 
>     mode = 0600
>     user = 
>   }
>   unix_listener director-userdb {
>     group = 
>     mode = 0600
>     user = 
>   }
>   unix_listener login/director {
>     group = 
>     mode = 00
>     user = 
>   }
>   user = $default_internal_user
>   vsz_limit = 18446744073709551615 B
> }
> service dns_client {
>   chroot = 
>   client_limit = 1
>   drop_priv_before_exec = no
>   executable = dns-client
>   extra_groups = 
>   group = 
>   idle_kill = 0
>   privileged_group = 
>   process_limit = 0
>   process_min_avail = 0
>   protocol = 
>   service_count = 0
>   type = 
>   unix_listener dns-client {
>     group = 
>     mode = 0666
>     user = 
>   }
>   unix_listener login/dns-client {
>     group = 
>     mode = 0666
>     user = 
>   }
>   user = $default_internal_user
>   vsz_limit = 18446744073709551615 B
> }
> service doveadm {
>   chroot = 
>   client_limit = 1
>   drop_priv_before_exec = no
>   executable = doveadm-server
>   extra_groups = 
>   group = 
>   idle_kill = 0
>   privileged_group = 
>   process_limit = 0
>   process_min_avail = 0
>   protocol = 
>   service_count = 1
>   type = 
>   unix_listener doveadm-server {
>     group = 
>     mode = 0600
>     user = 
>   }
>   user = 
>   vsz_limit = 18446744073709551615 B
> }
> service imap-login {
>   chroot = login
>   client_limit = 0
>   drop_priv_before_exec = no
>   executable = imap-login
>   extra_groups = 
>   group = 
>   idle_kill = 0
>   inet_listener imap {
>     address = 
>     port = 143
>     ssl = no
>   }
>   inet_listener imaps {
>     address = 
>     port = 993
>     ssl = yes
>   }
>   privileged_group = 
>   process_limit = 0
>   process_min_avail = 0
>   protocol = imap
>   service_count = 1
>   type = login
>   user = $default_login_user
>   vsz_limit = 64 M
> }
> service imap {
>   chroot = 
>   client_limit = 1
>   drop_priv_before_exec = no
>   executable = imap
>   extra_groups = 
>   group = 
>   idle_kill = 0
>   privileged_group = 
>   process_limit = 1024
>   process_min_avail = 0
>   protocol = imap
>   service_count = 1
>   type = 
>   unix_listener login/imap {
>     group = 
>     mode = 0666
>     user = 
>   }
>   user = 
>   vsz_limit = 18446744073709551615 B
> }
> service lmtp {
>   chroot = 
>   client_limit = 0
>   drop_priv_before_exec = no
>   executable = lmtp
>   extra_groups = 
>   group = 
>   idle_kill = 0
>   privileged_group = 
>   process_limit = 0
>   process_min_avail = 0
>   protocol = lmtp
>   service_count = 0
>   type = 
>   unix_listener /var/spool/postfix/private/dovecot-lmtp {
>     group = postdrop
>     mode = 0666
>     user = postfix
>   }
>   unix_listener lmtp {
>     group = 
>     mode = 0666
>     user = 
>   }
>   user = 
>   vsz_limit = 0
> }
> service log {
>   chroot = 
>   client_limit = 0
>   drop_priv_before_exec = no
>   executable = log
>   extra_groups = 
>   group = 
>   idle_kill = 0
>   privileged_group = 
>   process_limit = 1
>   process_min_avail = 0
>   protocol = 
>   service_count = 0
>   type = log
>   user = 
>   vsz_limit = 18446744073709551615 B
> }
> service managesieve-login {
>   chroot = login
>   client_limit = 0
>   drop_priv_before_exec = no
>   executable = managesieve-login
>   extra_groups = 
>   group = 
>   idle_kill = 0
>   inet_listener sieve {
>     address = 
>     port = 4190
>     ssl = no
>   }
>   inet_listener sieve_deprecated {
>     address = 
>     port = 2001
>     ssl = no
>   }
>   privileged_group = 
>   process_limit = 0
>   process_min_avail = 0
>   protocol = sieve
>   service_count = 1
>   type = login
>   user = $default_login_user
>   vsz_limit = 64 M
> }
> service managesieve {
>   chroot = 
>   client_limit = 1
>   drop_priv_before_exec = no
>   executable = managesieve
>   extra_groups = 
>   group = 
>   idle_kill = 0
>   privileged_group = 
>   process_limit = 0
>   process_min_avail = 0
>   protocol = sieve
>   service_count = 1
>   type = 
>   unix_listener login/sieve {
>     group = 
>     mode = 0666
>     user = 
>   }
>   user = 
>   vsz_limit = 18446744073709551615 B
> }
> service pop3-login {
>   chroot = login
>   client_limit = 0
>   drop_priv_before_exec = no
>   executable = pop3-login
>   extra_groups = 
>   group = 
>   idle_kill = 0
>   inet_listener pop3 {
>     address = 
>     port = 110
>     ssl = no
>   }
>   inet_listener pop3s {
>     address = 
>     port = 995
>     ssl = yes
>   }
>   privileged_group = 
>   process_limit = 0
>   process_min_avail = 0
>   protocol = pop3
>   service_count = 1
>   type = login
>   user = $default_login_user
>   vsz_limit = 64 M
> }
> service pop3 {
>   chroot = 
>   client_limit = 1
>   drop_priv_before_exec = no
>   executable = pop3
>   extra_groups = 
>   group = 
>   idle_kill = 0
>   privileged_group = 
>   process_limit = 1024
>   process_min_avail = 0
>   protocol = pop3
>   service_count = 1
>   type = 
>   unix_listener login/pop3 {
>     group = 
>     mode = 0666
>     user = 
>   }
>   user = 
>   vsz_limit = 18446744073709551615 B
> }
> service ssl-params {
>   chroot = 
>   client_limit = 0
>   drop_priv_before_exec = no
>   executable = ssl-params
>   extra_groups = 
>   group = 
>   idle_kill = 0
>   privileged_group = 
>   process_limit = 0
>   process_min_avail = 0
>   protocol = 
>   service_count = 0
>   type = startup
>   unix_listener login/ssl-params {
>     group = 
>     mode = 0666
>     user = 
>   }
>   user = 
>   vsz_limit = 18446744073709551615 B
> }
> shutdown_clients = yes
> ssl = yes
> ssl_ca = 
> ssl_cert = </usr/local/dovecot/dovecot2/etc/dovecot/ssl/imapd.pem
> ssl_cert_username_field = commonName
> ssl_cipher_list = ALL:!LOW:!SSLv2:!EXP:!aNULL
> ssl_key = </usr/local/dovecot/dovecot2/etc/dovecot/ssl/imapd.pem
> ssl_key_password = 
> ssl_parameters_file = ssl-parameters.dat
> ssl_parameters_regenerate = 168
> ssl_verify_client_cert = no
> syslog_facility = mail
> userdb {
>   args
> = /usr/local/dovecot/dovecot2/etc/dovecot/conf.d/dovecot-ldap.conf.ext
>   driver = ldap
> }
> valid_chroot_dirs = 
> verbose_auth = no
> verbose_proctitle = yes
> verbose_ssl = no
> version_ignore = no
> protocol lda {
>   mail_plugins = acl quota sieve quota
> }
> protocol imap {
>   imap_idle_notify_interval = 2 mins
>   mail_max_userip_connections = 10
>   mail_plugins = acl quota imap_acl imap_quota mail_log notify
> autocreate trash listescape
> }
> protocol lmtp {
>   mail_plugins = acl quota sieve
> }
> protocol pop3 {
>   mail_plugins = acl quota quota
>   pop3_client_workarounds = outlook-no-nuls oe-ns-eoh
>   pop3_reuse_xuidl = yes
> }
> 


-- 
Best Regards

MfG Robert Schetterer

Germany/Munich/Bavaria


More information about the dovecot mailing list