Соединение установилось, разговор начался — и приёмник замолчал. Руководство называет две причины: он перегружен либо есть проблемы со связью.
🔴 Ожидание длится десять минут, и настроить его нельзя. В продукте с сотнями настраиваемых директив это редкость, и она важна: под каждую заглохшую попытку отводится десять минут занятого места в числе соединений.
Отсюда следствие про стоимость. Приёмник, который молчит, дороже приёмника, который отказывает: отказ освобождает соединение сразу, молчание держит его десять минут. На узле с ограниченным числом исходящих соединений один такой приёмник способен занять заметную их долю.
⚠️ Между тем именно он дороже прочих: молчащий приёмник держит соединения десять минут каждое. Заметить это по нашим графикам можно косвенно — доля отказов невысокая, а число открытых соединений упирается в потолок.
Лечится это ограничением соединений к проблемному приёмнику — а такую правку Хаб умеет, если решение принято.
Что с ним делать:
| Действие | Помогает |
|---|---|
| уменьшить потолок соединений к этому приёмнику | да — ограничивает потери |
| сократить время ожидания | невозможно, оно не настраивается |
| увеличить общий потолок соединений | нет, молчащий приёмник съест и его |
Признак в цифрах: соединений открыто много, писем уходит мало, отказов почти нет. Обычная перегрузка выглядит иначе — там растёт доля отказов.
# единственная ручка против молчащего приёмника <domain slow.example.com> max-smtp-out 2</domain>
3 связи
3 статьи
◇Очередь — это приёмник вместе с адресом отправкиMTA группирует письма по паре «домен получателя плюс адрес отправки»: один домен с двух адресов — это две независимые очереди со своими счётчиками, соединениями и режимом.◇Получатели, отложенные после временного отказаПолучатель, которому приёмник ответил 4xx, переезжает в отдельную область ожидания с интервалом по приёмнику; две команды умеют выпустить его раньше срока.◇Своя лестница повторовretry-after и backoff-retry-after принимают список интервалов — до 30 ступеней, последняя действует до отказа.