total-max-smtp-in

GlobalХаб задаёт сам

Потолок входящих соединений SMTP
в конфигурации это строкаtotal-max-smtp-in 100внутри блока Global
Потолок входящих соединений

Сколько входящих SMTP-соединений узел обслуживает одновременно — суммарно по всем приёмникам и всем источникам.

Что происходит на пределе. Новое соединение либо ждёт освобождения слота, либо получает 421 и закрывается — выбор задаёт smtp-await-slot. Ожидание выглядит для подающего как медленный узел, отказ — как недоступный.

Вендор советует не поднимать. Умолчание — сто соединений, и руководство прямо просит не ставить больше «на практике», отсылая к пределам машины и операционной системы. Верхней границы MTA при этом не проверяет: число можно написать любое, и проявится оно позже, когда соединений действительно станет много.

Главная ловушка. Один и тот же потолок делят подача от платформ и приём отказов с жалобами. Всплеск подачи может вытеснить приём отчётов, и телеметрия просядет там, где никто не искал. Для этого есть резервирование слотов (reserved-smtp-in) на группу источников.
Что делает Хаб. Ставит 1000 — вдесятеро больше того, что рекомендует вендор, и числа за этим не стоит: значение записано в шаблоне конфигурации как есть, оно не считалось ни от числа подающих платформ, ни от возможностей машины. Резервирования слотов под приём отчётов Хаб не делает вовсе — строки reserved-smtp-in нет ни в одной конфигурации парка.
Рекомендуемые значения

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

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

У нас стоит 1000. Это вдесятеро выше вендорской рекомендации и ничем не обосновано, кроме запаса; число дескрипторов на узлах при этом не считали.

Умолчание 100 и совет его не превышать — вендорские. Значение 1000 — наше, и оно не рассчитано.
Пример в конфигурации
# потолок узла — вне всяких блоков
total-max-smtp-in 1000smtp-listener 0/0:2525    # подача кампаний
smtp-listener 0/0:25      # приём жалоб и отказов
Оба приёмника делят один и тот же потолок — он считает соединения на узел целиком, а не на строку smtp-listener.
жёлтым — — имена директив, голубым — блоки. Так же они подсвечены и в тексте карточки.
▲

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

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

Считают потолок на приёмник, а не на узел

§ 3.3.1.3

Чем чреватоСтрок smtp-listener может быть несколько, а потолок один на всех. Подача кампаний способна занять слоты, рассчитанные на приём жалоб и отказов.
Как заметитьВторой приёмник начинает отвечать отказами, хотя на него почти ничего не подают, — а первый в это время работает на полную.
Как правильноРезервировать слоты за группой источников, а не разводить нагрузку по приёмникам: на потолок это не влияет.

Поднимают число, не сверившись с возможностями машины

§ 3.3.1.3

Чем чреватоMTA верхней границы не проверяет, и всё упирается в дескрипторы и память. Написанная тысяча не значит, что тысяча соединений будет обслужена.
Как заметитьСоединения перестают приниматься при незаполненном потолке, а в журнале ошибки уровня операционной системы.
Как правильноСчитать от числа подающих сессий и сверять с пределом дескрипторов процесса на узле.

Не оставляют запаса под приём отказов и жалоб

наш опыт

Чем чреватоОтчёты приходят на тот же узел и в тот же потолок. Вытесненные ими соединения не повторяются бесконечно: часть отказов и жалоб теряется насовсем, а вместе с ними — основания для чёрного списка.
Как заметитьВ отчётах провал по отказам и жалобам ровно в часы крупных рассылок, при том что доставка в эти часы обычная.
Как правильноЗарезервировать слоты за группой источников, через которую приходят отчёты, и смотреть колонку top, а не только active.
Совместимость
PowerMTA 6.0
описана в руководстве этой версии · платформа: любая
С какой версии директива доступна, вендор указывает не для всех — здесь пометки нет. Имя встречается и в издании руководства 5.0.
Справочные данные
Синтаксис
total-max-smtp-in <number>
Значения
положительное целое, число одновременных соединений; умолчание 100, и вендор советует его не превышать
Умолчание
100 § 3.3.1.3
Применение
reload, перезапуск не нужен
Очередь
уже поставленное в очередь не затронет
Где писать
Global
Сколько раз
один раз в блоке
Всё здесь — из руководства, с разделом.
Наследование
Наследования нет: свойство экземпляра целиком. Ниже него — предел группы источников (max-smtp-in в блоке <source-group>) и её резерв (reserved-smtp-in); подача по HTTP считается отдельно, своим потолком (total-max-transmissions-api). Подхватывается по pmta reload.
Как проверить на узле
Действующее значение и то, насколько близко к нему подходили, печатает состояние узла:
pmta show status
Раздел Connections, строка Inbound: maximum — потолок, active — занято сейчас, top — рекорд с последнего сброса счётчиков. Последняя колонка и говорит, был ли запас настоящим. § 6.3.17
В Хабе
Управляется
Конфигурации → Лимиты доставки
Значение
Хаб подбирает сам — темп, стадия прогрева, метрики
Цена ошибки
обратимо: вредит, пока стоит
Сценарии
Подключить платформу отправки