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