[Dovecot-de] Verzögerungen beim Speichern von gesendeten Mails

Mein Papierkorb meinpapierkorb123 at gmail.com
Mo Mär 16 11:36:11 CET 2015


Hallo zusammen,

ich betreibe einen kleinen Debian-Mailserver mit Postfix und Dovecot 
2.1.7 und ca 50 IMAP-Postfächern.

Das Problem ist, dass nach dem Versenden von Mails es manchmal eine 
ganze Weile, bis die versendete Mail in den Ordner "Sent" abgelegt wurde.
Ein User teilte mir nun mit, dass er dabei manchmal sogar Timeouts 
bekommt, seiner Beobachtung nach besonders bei Mails mit großen Anhängen.

Ich habe daraufhin in der 10-master.conf (siehe Anhang) mal das 
process_limit auf 400 erhöht, aber dennoch: bis eine Mail unter "Sent" 
abgelegt ist, vergehen bei mir (Ich verwende Thunderbird) manchmal 5-10 
Sekunden, auch bei reinen Textmails. An der Bandbreite der 
Internetverbindung kann es also nicht liegen.

Unter ps aux melden die beiden imap-login-Prozesse zusammen eine 
Verbindungszahl von grob 40-50 TLS-Verbindungen, also nix, was den 
Server in die Knie zwingen könnte, würde ich mal meinen.

Könnte Dovecot bzw das System irgendwo einen Flaschenhals haben, oder 
was könnte die Ursache sein?

Vielen Dank vorab!

Gruß,
Markus
-------------- nächster Teil --------------
#default_process_limit = 100
#default_client_limit = 1000

# Default VSZ (virtual memory size) limit for service processes. This is mainly
# intended to catch and kill processes that leak memory before they eat up
# everything.
#default_vsz_limit = 256M

# Login user is internally used by login processes. This is the most untrusted
# user in Dovecot system. It shouldn't have access to anything at all.
#default_login_user = dovenull

# Internal user is used by unprivileged processes. It should be separate from
# login user, so that login processes can't disturb other processes.
#default_internal_user = dovecot

service imap-login {
  #Keine neuen Prozesse starten, wenn neue Verbindungen reinkommen...
  service_count = 0
  #...aber trotzdem immer so viele Prozesse wie CPU-Kerne vorhalten:
  process_min_avail = 2

  inet_listener imap {
    #port = 143
  }
  inet_listener imaps {
    #port = 993
    #ssl = yes
  }

  # Number of connections to handle before starting a new process. Typically
  # the only useful values are 0 (unlimited) or 1. 1 is more secure, but 0
  # is faster. <doc/wiki/LoginProcess.txt>
  #service_count = 1

  # Number of processes to always keep waiting for more connections.
  #process_min_avail = 10

  # If you set service_count=0, you probably need to grow this.
  #vsz_limit = $default_vsz_limit
}

service pop3-login {
  service_count = 0
  process_min_avail = 2
  inet_listener pop3 {
    #port = 110
  }
  inet_listener pop3s {
    #port = 995
    #ssl = yes
  }
}

service lmtp {
  unix_listener lmtp {
    #mode = 0666
  }
  
  #Create inet listener only if you can't use the above UNIX socket
  inet_listener lmtp {
    # Avoid making LMTP visible for the entire internet
    address = 127.0.0.1
    port = 24
  }
}

service imap {
  # Most of the memory goes to mmap()ing files. You may need to increase this
  # limit if you have huge mailboxes.
  #vsz_limit = $default_vsz_limit

  # Max. number of IMAP processes (connections)
  process_limit = 400
}

service pop3 {
  # Max. number of POP3 processes (connections)
  #process_limit = 15
}

service auth {
  # auth_socket_path points to this userdb socket by default. It's typically
  # used by dovecot-lda, doveadm, possibly imap process, etc. Users that have
  # full permissions to this socket are able to get a list of all usernames and
  # get the results of everyone's userdb lookups.
  #
  # The default 0666 mode allows anyone to connect to the socket, but the
  # userdb lookups will succeed only if the userdb returns an "uid" field that
  # matches the caller process's UID. Also if caller's uid or gid matches the
  # socket's uid or gid the lookup succeeds. Anything else causes a failure.
  #
  # To give the caller full permissions to lookup all users, set the mode to
  # something else than 0666 and Dovecot lets the kernel enforce the
  # permissions (e.g. 0777 allows everyone full permissions).
  unix_listener auth-userdb {
    #mode = 0666
    #user = 
    #group = 
  }

  # Postfix smtp-auth
  unix_listener /var/spool/postfix/private/auth {
    mode = 0666
  }

  # Auth process is run as this user.
  #user = $default_internal_user
}

service auth-worker {
  # Auth worker process is run as root by default, so that it can access
  # /etc/shadow. If this isn't necessary, the user should be changed to
  # $default_internal_user.
  #user = root
}

service dict {
  # If dict proxy is used, mail processes should have access to its socket.
  # For example: mode=0660, group=vmail and global mail_access_groups=vmail
  unix_listener dict {
    #mode = 0600
    #user = 
    #group = 
  }
}
-------------- nächster Teil --------------
##
## IMAP specific settings
##

protocol imap {
  # Maximum IMAP command line length. Some clients generate very long command
  # lines with huge mailboxes, so you may need to raise this if you get
  # "Too long argument" or "IMAP command line too large" errors often.
  #imap_max_line_length = 64k

  # Maximum number of IMAP connections allowed for a user from each IP address.
  # NOTE: The username is compared case-sensitively.
  #mail_max_userip_connections = 10

  # Space separated list of plugins to load (default is global mail_plugins).
  mail_plugins = $mail_plugins imap_quota

  # IMAP logout format string:
  #  %i - total number of bytes read from client
  #  %o - total number of bytes sent to client
  #imap_logout_format = bytes=%i/%o

  # Override the IMAP CAPABILITY response. If the value begins with '+',
  # add the given capabilities on top of the defaults (e.g. +XFOO XBAR).
  #imap_capability = 

  # How long to wait between "OK Still here" notifications when client is
  # IDLEing.
  #imap_idle_notify_interval = 2 mins

  # ID field names and values to send to clients. Using * as the value makes
  # Dovecot use the default value. The following fields have default values
  # currently: name, version, os, os-version, support-url, support-email.
  #imap_id_send = 

  # ID fields sent by client to log. * means everything.
  #imap_id_log =

  # Workarounds for various client bugs:
  #   delay-newmail:
  #     Send EXISTS/RECENT new mail notifications only when replying to NOOP
  #     and CHECK commands. Some clients ignore them otherwise, for example OSX
  #     Mail (<v2.1). Outlook Express breaks more badly though, without this it
  #     may show user "Message no longer in server" errors. Note that OE6 still
  #     breaks even with this workaround if synchronization is set to
  #     "Headers Only".
  #   tb-extra-mailbox-sep:
  #     Thunderbird gets somehow confused with LAYOUT=fs (mbox and dbox) and
  #     adds extra '/' suffixes to mailbox names. This option causes Dovecot to
  #     ignore the extra '/' instead of treating it as invalid mailbox name.
  #   tb-lsub-flags:
  #     Show \Noselect flags for LSUB replies with LAYOUT=fs (e.g. mbox).
  #     This makes Thunderbird realize they aren't selectable and show them
  #     greyed out, instead of only later giving "not selectable" popup error.
  #
  # The list is space-separated.
  #imap_client_workarounds = 
}


Mehr Informationen über die Mailingliste Dovecot