Приёмник замолчал посреди разговора

ETIMEDOUT
Десять минут молчания — и они не настраиваются

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

🔴 Ожидание длится десять минут, и настроить его нельзя. В продукте с сотнями настраиваемых директив это редкость, и она важна: под каждую заглохшую попытку отводится десять минут занятого места в числе соединений.

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

Главная ловушка — искать настройку этого времени. Её нет. Единственный способ уменьшить ущерб — ограничить, сколько соединений вообще уйдёт к проблемному приёмнику: потолок соединений у него в блоке приёмника и есть та ручка, которой это лечится.
Что делает Хаб. Отдельно этот отказ не различает — он приходит в общую категорию отказов транспорта.

⚠️ Между тем именно он дороже прочих: молчащий приёмник держит соединения десять минут каждое. Заметить это по нашим графикам можно косвенно — доля отказов невысокая, а число открытых соединений упирается в потолок.

Лечится это ограничением соединений к проблемному приёмнику — а такую правку Хаб умеет, если решение принято.

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

Что с ним делать:

Действие Помогает
уменьшить потолок соединений к этому приёмнику да — ограничивает потери
сократить время ожидания невозможно, оно не настраивается
увеличить общий потолок соединений нет, молчащий приёмник съест и его

Признак в цифрах: соединений открыто много, писем уходит мало, отказов почти нет. Обычная перегрузка выглядит иначе — там растёт доля отказов.

Разбор про стоимость соединений и признак в цифрах наши. Из руководства здесь причина отказа и то, что десятиминутное ожидание не настраивается.
Пример в конфигурации
# единственная ручка против молчащего приёмника
<domain slow.example.com>
    max-smtp-out 2</domain>
Выделенная строка ограничивает число соединений к проблемному приёмнику. Само время ожидания не настраивается, поэтому уменьшают не его, а количество попыток, которые могут в нём застрять.
жёлтым — — имена директив, голубым — блоки. Так же они подсвечены и в тексте карточки.
Совместимость
PowerMTA 6.0
описана в руководстве этой версии · платформа: любая
С какой версии директива доступна, вендор указывает не для всех — здесь пометки нет. Имя встречается и в издании руководства 5.0.
В Хабе
Цена ошибки
обратимо: вредит, пока стоит
Сценарии
Настроить темп под провайдера · Разобрать зависшую очередь