Dovecot грузит CPU
Проблема: Со слов заказчика: Тормозит Веб-сервер, большое количество процессов httpd (более 400). Симптомы:
Apache действительно показывает большое количество процессов, но внешняя активность клиентов - не высокая. Смотрим на загрузку CPU:
Смотрим, чем занят Dovecot:
Считаем файлы в хранилище почты и видим постоянный прирост, при отсутствии внешнего трафика в Exim.
-bash-4.1# find /var/...mail/domain.com/ -type f | wc -l
679728
# ... 3 сек
679747
# ... 3 сек
679754
# ... 3 сек
679758
# ... 3 сек
679767
Находим почтовый ящик, в котором происходит рост количества писем (метод перебора). Количество писем в ящике: 564 314 Количество писем в 1-ой папке INBOX. более 220 000.
Останавливаем Dovecot. Удаляем из всех папок данного почтового ящика все файлы dovecot*:
../support/.maildir/dovecot.index
../support/.maildir/dovecot.index.cache
../support/.maildir/dovecot.index.log
../support/.maildir/dovecot.mailbox.log
../support/.maildir/dovecot-uidlist
../support/.maildir/dovecot-uidvalidity
Запускаем Dovecot. Заходим Web-клиентом на почту, проверяем видимость писем - все Ок. Dovecot при обращении клиента в папе восстанавливает файлы, которые ранее удалили. Это занимает какое-то время и немного подгружает io.
Загрузки CPU процессами Dovecot - НЕТ.
Продолжение: На след.день заказчик обращает внимание, что входящая почта на вчерашний проблемный ящик, не сортируется по папках. На сервере установлена панель ISP. Сортировки почты выполняется Procmail-ом. Для данного ящика оказалось 15 правил.
Включили лог Procmail c отладкой.
Ждем повторения проблемы.