У меня есть сервер IMAP / POP3 / Webmail с Dovecot1 2.2.10 с серверной частью MySQL, расположенной на другом сервере. Сервер работает с конфигурацией по умолчанию.
...
driver = mysql
default_pass_scheme = plain
...
Моя проблема в том, что иногда, когда он перегружается, он начинает отказывать в аутентификации (иначе говоря, неверный пароль) клиентов. Он делает это для всех разных типов клиентов (pop3, imap, webmail), поэтому это должна быть проблема, связанная с сервером аутентификации.
Моя первая мысль заключается в том, что недостаточно запущенных процессов аутентификации dovecot.
Что я могу настроить и в каком порядке, чтобы эта система могла одновременно обрабатывать больше запросов на аутентификацию клиентов?
Мой сервер MySQL не перегружен, это четырехъядерный компьютер со средней загрузкой ЦП 25% в течение дня.
В этот период резко возрастает загрузка ЦП почтового сервера. Использование памяти остается нормальным.
http://i58.tinypic.com/2q9gfpf.jpg
Это производственная система, поэтому все, что я могу сделать, это настроить некоторые переменные, которые наверняка ее не сломают.
Спасибо!
Не знаю, может ли то же самое, что происходит с Cyrus IMAPd, с Dovecot. Давай попробуем.
Ядро Linux собирает реальную случайность, энтропию из множества источников и событий. Эти данные могут быть прочитаны любой программой из /dev/random
. Что ж, иногда, если генерируется недостаточно «реальной» случайности (например, сервер не содержит аппаратно ускоренного генератора случайных чисел), этот пул энтропии может быть пустым. И пока он пуст, любой процесс, ожидающий случайных данных из / dev / random, останавливается, пока пул энтропии истощается.
Всякий раз, когда эта задержка происходит на вашем сервере Dovecot, вы можете проверить watch -n1 'cat /proc/sys/kernel/random/entropy_avail'
и посмотрите, остается ли значение равным нулю или около него. Если это так, вашему Dovecot требуется, чтобы случайность сгенерировалась быстрее.
Одно из решений - установить rngd
(например, в Ubuntu / Debian это в rng-tools
package) и настройте его для использования /dev/urandom
. rngd
показывает случайные данные /dev/random
из источников, которые вы настраиваете для использования. Да, использовать полуслучайность в случае /dev/urandom
но, по крайней мере, это работает.
В Cyrus IMAPd это была строка приветствия POP3 со случайно сгенерированной строкой, которая очень быстро потребляла / dev / random, а при большом количестве подключений приводила к полной остановке, продолжающейся до нескольких минут.
Совершенно другой вариант заключается в том, что ваше приложение веб-почты плохо обрабатывает соединения MySQL, поэтому max_connect_errors
в MySQL превышается, и MySQL начинает отклонять ваш сервер Dovecot. В таком случае FLUSH HOSTS;
на сервере MySQL командная строка MySQL должна помочь.
Если это основная причина ваших проблем с Dovecot, вам следует поднять MySQL max_connect_errors
предел.
Я знаю, что мой ответ очень надуман и полностью снят в темноте, но как знать!