У меня есть веб-серверы, которые отправляют электронные письма на сервер ретрансляции sendmail в виде пакетного задания. Электронные письма должны приниматься ретрансляционным сервером sendmail как можно быстрее, однако они не должны очень быстро уходить (ретранслироваться).
Время от времени я вижу пару тайм-аутов, когда веб-сервер пытается подключиться к серверу ретрансляции. В настоящее время загрузка составляет около 30 писем в секунду за пару минут.
Есть довольно много опций настройки sendmail в руководство по настройке sendmail.
Сейчас я сосредотачиваюсь на режиме доставки:
Режим доставки
Существует несколько режимов доставки, в которых может работать sendmail, которые задаются параметром конфигурации DeliveryMode (d). Эти режимы определяют, как быстро будет доставлена почта. Правовые режимы:
я доставляю интерактивно (синхронно) b доставляю в фоновом режиме (асинхронно) q только в очередь (не доставляю) d откладываю попытки доставки (не доставляю) Есть компромиссы. Режим i дает отправителю самую быструю обратную связь, но может замедлить работу некоторых почтовых программ и вряд ли когда-либо понадобится. Режим b доставляет сообщения быстро, но может вызвать большое количество процессов, если у вас есть почтовая программа, которая занимает много времени для доставки сообщения. Режим q минимизирует нагрузку на ваш компьютер, но означает, что доставка может быть отложена до интервала очереди. Режим d идентичен режиму q, за исключением того, что он также предотвращает поиск в картах, включая флаг -D, во время начальной фазы очереди; он предназначен для сайтов с функцией дозвона по запросу, где поиск DNS может стоить реальных денег. Некоторые простые сообщения об ошибках (например, хост неизвестен во время протокола SMTP) будут задерживаться в этом режиме. Режим b - обычный режим по умолчанию. Если вы работаете в режиме q (только очередь), d (отложить) или b (доставлять в фоновом режиме), sendmail не будет расширять псевдонимы и следовать файлам .forward при первоначальном получении почты. Это ускоряет ответ на команды RCPT. Режим i не должен использоваться сервером SMTP.
В настоящее время у меня есть режимы по умолчанию CentOS:
Sendmail.cf:
DeliveryMode=background
Submit.cf:
DeliveryMode=i
sendmail.cf/mc
для исходящей электронной почты от ретранслятора (на межтрубные) и sumbit.cf/mc
для входящих eamil (с моих веб-серверов).Кайл,
** Я ни в коем случае не эксперт по sendmail **
В вашем случае ключевым моментом является необходимость того, чтобы sendmail принимал / помещал сообщения в очередь как можно скорее (пакетная обработка?). Если вы этого не сделали, взгляните на параметры sendmail: QueueLA и RefuseLA - средняя загрузка очереди и средняя загрузка отказа. Если вы действительно бомбардируете sendmail, ваши средние значения нагрузки быстро возрастут, и вы нажмете RefuseLA, что может быть частью проблемы с тайм-аутом. Вы можете увеличить RefuseLA (если вы еще этого не сделали).
Чтобы sendmail не делал слишком много одновременно (прием и передача), уменьшите значение QueueLA. Более низкое значение QueueLA переведет sendmail в режим только очереди, поэтому sendmail сосредоточится на работе с очередями и сохранит работу по передаче / отправке на потом. Низкое значение QueueLA и высокое значение RefuseLA приведут к тому, что система поставит в очередь большое количество почты (дисковое пространство), а затем начнет отправлять его после того, как нагрузка упадет ниже QueueLA.
Для обычных конфигураций sendmail стоит отметить, что QueueLA не должен быть намного ниже, чем RefuseLA, и, возможно, он должен быть немного выше.
Режим доставки «q» - это крайняя версия низкого параметра QueueLA, когда вам нужно каким-то образом инициировать команду доставки, чтобы начать передачу исходящего сообщения.
Ресурс: http://www.brandonhutchinson.com/QueueLA_and_RefuseLA.html