Сисадмин-любитель (ulrith) wrote,
Сисадмин-любитель
ulrith

qmail queue growing

Решил записать тут, как я победил наконец регулярно мучившую меня напасть - неконтролируемый рост сообщений в очереди qmail, по поводу которой я даже ругался с мастерхостом.

Итак, никакие простые идеи из головы и гугла (типа перезапуска qmail, отключения спамобойки, увеличения разнообразных лимитов обработки почты, перезагрузки сервера наконец) не работали. Видеть растущую каждые несколько секунд на несколько сообщений очередь было невыносимо. Тем более спокойно спать, когда в очереди уже ждут 18 тыс. писем, а утром их там будет намного больше...

Делать нечего, как мне не хотелось, пришлось ковыряццо в очереди руками. Оказалось, дело это несложное и даже приятное, как любая уборка. Ковыряние проводится утилитой qmHandle, которая очень проста. Собственно, в ней нам нужны всего четыре команды:

./qmHandle -s # показывает текущее состояние очереди

./qmHandle -l # выводит сообщения (если их там тысячи, просто нажимаем Ctrl-C сразу после запуска)

./qmHandle -fzloy-spammer@mail.ru # удаление всех сообщений от zloy-spammer@mail.ru

./qmHandle -S"failure notice" # удаление всех сообщений с сабжем "failure notice"


Таким вот нехитрым способом удалось разгрести все 18 тыс. сообщений минут за пятнадцать. Как я доволен. :-)

Теперь соображение насчёт причины неприятного явления. Похоже, число одновременно посылаемых qmail сообщений ограничено некоторым не очень большим числом, которое не сильно поддаётся изменению даже посредством установки соответствующей переменной (я пробовал ставить 100 - бесполезно).

Если по какой-то причине очередь забивается достаточно большим числом сообщений, которые не могут послаццо (напр. спам или отлупы на несуществующие адреса), то они так и висят в состоянии отправки, наглухо перекрывая путь нормальным сообщениям.

Вот такая версия.
Tags: hosting, unixway
Subscribe
  • Post a new comment

    Error

    default userpic

    Your reply will be screened

    When you submit the form an invisible reCAPTCHA check will be performed.
    You must follow the Privacy Policy and Google Terms of use.
  • 11 comments