Назад | Перейти на главную страницу

Dovecot High Disk io

У нас возникают некоторые серьезные проблемы с нашим почтовым сервером, обычно после перезагрузки (но не всегда), когда диск io в среднем вырастает со средней 50-100 Мбит / с до 200-300 Мбит / с.

Я сузил его до dovecot, убийство dovecot немедленно возвращает использование диска в норму. Я бы сказал, что, возможно, это просто голубятня, обрабатывающая отставание после сбоя, поскольку вчера у нас был сбой на несколько часов, но он уладился вчера вечером, а затем снова увеличился сегодня.

Используя поверх, я обнаружил определенные учетные записи imap, которые вызывают проблемы. Я связался с клиентами и обнаружил, что все клиенты с самым высоким уровнем io удаляли большое количество электронной почты из своих ящиков входящих.

Очевидно, это не может помешать им сделать это, но увеличенный io диска вызывает много ожидания io, и службы перестают отвечать, поэтому нам нужен способ уменьшить занимаемое dovecot io следом. Я знаю, что вы можете сделать что-нибудь, чтобы снизить приоритет процессора, есть ли что-то подобное для приоритета диска?

Наша команда по управлению серверами говорит, что это настолько хорошо, насколько это возможно, и нам нужно выделить больше ресурсов для голубятни, но я бы предпочел исключить возможность плохой конфигурации, прежде чем мы бросим на него другой сервер, только для того, чтобы иметь проблемы Подписывайтесь на нас. 300 Мбит / с от нескольких человек, удаляющих свою электронную почту, звучат немного чрезмерно ИМХО.

Ниже представлен результат конфигурации нашей голубятни из dovecot -n. Мы будем очень благодарны за любую помощь, которую может предоставить каждый.

Вы увидите, что я уже пытался отключить fsync согласно этой статье: http://wiki.dovecot.org/PerformanceTuning. Существенного улучшения не заметил. Будем очень признательны за любые предложения, которые кто-либо может предоставить.

Изменить: у нас есть один файл для каждого пользователя, хранящийся в / var / spool / mail, поэтому я предполагаю, что это формат mbox.

# 1.0.7: /etc/dovecot.conf
log_timestamp: %Y-%m-%d %H:%M:%S 
protocols: imap imaps pop3
login_dir: /var/run/dovecot/login
login_executable(default): /usr/libexec/dovecot/imap-login
login_executable(imap): /usr/libexec/dovecot/imap-login
login_executable(pop3): /usr/libexec/dovecot/pop3-login
verbose_proctitle: yes
mail_privileged_group: mail
fsync_disable: yes
mail_executable(default): /usr/libexec/dovecot/imap
mail_executable(imap): /usr/libexec/dovecot/imap
mail_executable(pop3): /usr/libexec/dovecot/pop3
mail_plugin_dir(default): /usr/lib64/dovecot/imap
mail_plugin_dir(imap): /usr/lib64/dovecot/imap
mail_plugin_dir(pop3): /usr/lib64/dovecot/pop3
auth default:
  mechanisms: plain login
  passdb:
    driver: pam
  userdb:
    driver: passwd
  socket:
    type: listen
    client:
      path: /var/spool/postfix/private/auth
      mode: 432
      user: postfix
      group: postfix
    master:
      path: /var/run/dovecot/auth-master
      mode: 384
      user: root

Вы не говорите, какой формат почтового ящика используете.

Dovecot хорош тем, что поддерживает стандартный формат mbox. Настроить так просто.

Проблема в том, что стандартный формат mbox - это всего лишь один большой файл; операция с сообщением в середине файла может вызвать перезапись всей второй половины.

Dovecot также поддерживает формат Maildir. Это сохраняет сообщения по одному на файл. Это тоже может иметь проблемы, но когда у вас есть пользователи с огромными почтовыми квотами, это, вероятно, меньшее зло.

Могут быть плагины dovecot для других форматов, но, насколько я могу судить, других напрямую поддерживаемых форматов почтовых ящиков нет.