backoff-max-connect-rate

<domain>

Какой темп открытия соединений действует, пока очередь в backoff
в конфигурации это строкаbackoff-max-connect-rate значение max-connect-rate, если оно задано, иначе unlimitedвнутри блока <domain>
Темп подключений в щадящем режиме

Заменяет max-connect-rate, пока очередь в щадящем режиме. Смысл тот же: сколько новых соединений разрешено открывать за интервал. Разница только в том, когда значение действует.

Умолчание не «без предела». Руководство описывает его так: если у той же очереди задан max-connect-rate, умолчанием становится он же; и только если обычного темпа нет — unlimited. То есть без явной строки щадящий режим подключения не притормаживает вовсе: он работает ровно так же, как обычный.

Это общее правило семьи. Так же устроены умолчания у backoff-max-msg-rate и backoff-max-data-volume-rate. Отсюда неочевидное следствие: перевод очереди в backoff сам по себе может ничего не изменить.

Главная ловушка. Backoff без заданных backoff-* значений — это backoff только по названию. Очередь помечена, в мониторе видно другой режим, письма идут ровно тем же темпом. Разбирательство при этом уходит в сторону: ищут, почему щадящий режим не помогает, — а он и не включался как ограничение.
Что делает Хаб. Не пишет — но пишет соседей по семье: backoff-max-msg-rate (от одного до двадцати писем в час по пресету узла) и backoff-max-smtp-out. Темп подключений в щадящем режиме отдельно не задаётся: при таком темпе писем подключений и так немного.

Если ставите руками — держите в голове, что значение должно быть заметно ниже обычного, иначе строка ничего не меняет.

Рекомендуемые значения

Считайте от обычного темпа, а не с нуля. Щадящий режим имеет смысл, когда он заметно ниже нормального: впятеро, вдесятеро. Значение, отличающееся на четверть, приёмник не заметит.

Соединения важнее объёма. Приёмник, который притормозил очередь, реагирует в первую очередь на подключения. Из всей семьи backoff-* эта директива и backoff-max-smtp-out влияют на его отношение сильнее, чем ограничения по письмам и байтам.

Задавать надо явно. Умолчание берёт обычный темп — то есть строки «по умолчанию всё будет мягче» не существует.

Кратность и совет про приоритет соединений — наши. Из руководства здесь синтаксис, правило умолчания «равно обычному темпу, если он задан» и то, что директива заменяет max-connect-rate в щадящем режиме.
Пример в конфигурации
# в щадящем режиме подключаемся вшестеро реже
<domain hotmail.com>
    max-connect-rate 30/m
    backoff-max-connect-rate 5/m</domain>
Без второй строки щадящий режим оставил бы те же тридцать подключений в минуту — умолчание берёт обычное значение.
жёлтым — — имена директив, голубым — блоки. Так же они подсвечены и в тексте карточки.
▲

Типичные ошибки и проблемы

что делают не так и чем это кончается2 ошибки▶

Полагаются на то, что backoff сам по себе притормозит

§ 3.3.10.95

Чем чреватоУмолчание равно обычному темпу, если тот задан. Очередь, переведённая в щадящий режим без явных backoff-* значений, подключается ровно так же часто, как и раньше.
Как заметитьОчередь в backoff, а число подключений не изменилось.
Как правильноЗадать backoff-max-connect-rate явно, кратно ниже обычного. То же и с остальными директивами семьи.

Снижают темп символически

наш опыт

Чем чреватоПриёмник, притормозивший очередь, реагирует на порядок величины, а не на проценты. Тридцать подключений вместо сорока он не отличит, и щадящий режим не приблизит возврат к норме.
Как заметитьОчередь подолгу не выходит из backoff, отказы те же.
Как правильноСнижать кратно — впятеро и сильнее. Щадящий режим на то и щадящий.
Совместимость
PowerMTA 6.0
описана в руководстве этой версии · платформа: любая
С какой версии директива доступна, вендор указывает не для всех — здесь пометки нет. Имя встречается и в издании руководства 5.0.
Справочные данные
Синтаксис
backoff-max-connect-rate <rate>
Значения
unlimited · 0 · N/[M] с единицей d|day|h|hr|m|min|s|sec — например 5/m
Умолчание
значение max-connect-rate, если оно задано, иначе unlimited § 3.3.10.95
Применение
reload, перезапуск не нужен
Очередь
уже поставленное в очередь не затронет
Где писать
<domain>
Сколько раз
один раз в блоке
Всё здесь — из руководства, с разделом.
Наследование
Значение сливается по блокам <domain> от общего к частному: побеждает наиболее подходящий блок, а не последний по файлу. Умолчание зависит от соседней строки: если в той же очереди задан max-connect-rate, он и становится умолчанием. Подхватывается по pmta reload.
Как проверить на узле
Действующее значение печатает команда настроек очереди; чтобы увидеть его в деле, нужна очередь, которая сейчас в щадящем режиме:
pmta show settings hotmail.com/vmta1 | grep -i backoff-max-connect-rate
pmta show queues --mode=backoff
Если первая команда печатает то же значение, что и max-connect-rate, — строка не задана и умолчание взяло обычный темп. Вторая показывает, есть ли сейчас очереди, к которым это относится.
В Хабе
Цена ошибки
обратимо: вредит, пока стоит
Сценарии
Прогрев адресов · Настроить темп под провайдера