max-smtp-out

<virtual-mta-pool>

Потолок соединений, который достаётся каждому адресу пула
в конфигурации это строкаmax-smtp-out unlimitedвнутри блока <virtual-mta-pool>
То же имя ещё 2:<domain><virtual-mta><virtual-mta-pool>— часть из них другие настройки, часть та же самая
Потолок соединений, заданный один раз на всю группу

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

Пул не делит запас, а раздаёт его. Руководство перечисляет директивы, которые пул передаёт вниз, и говорит о них «наследуются адресами-участниками». Поэтому max-smtp-out 20 в пуле из пяти адресов — это по двадцать соединений у каждого, то есть до сотни с пула, а не двадцать на всех. Значение, записанное в самом адресе, пуловое перекрывает.

Общий потолок на узле всё-таки есть — total-max-smtp-out, и он действует поверх всего. Если нужен предел именно на группу адресов, это единственная настоящая граница; пуловая строка её не заменяет.

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

Главная ловушка. Строку читают как «столько соединений с пула», а получают «столько с каждого». Добавили в пул пятый адрес — суммарные соединения выросли на пятую часть, хотя в конфигурации ничего не менялось. Проверяется командой pmta show vmta-settings <адрес>: она печатает значение уже после слияния с пулом.
Что делает Хаб. В пуле не пишет ничего, кроме списка участников: потолок соединений задаётся у каждого адреса отдельно, в блоке <virtual-mta>, — адреса в парке разные, и прогреваемый со сложившимся не должны получать одно значение. Поэтому и таблицы режимов на этой странице нет: режимы относятся к строке, которую Хаб пишет уровнем ниже.
Рекомендуемые значения

Считать произведением, а не суммой. Число из пула умножается на количество участников — это и есть то, что увидят получатели. Пул из пяти адресов по пятнадцать соединений — семьдесят пять соединений парка.

Одно значение на группу годится только для одинаковых адресов. Если в пуле есть и прогреваемый, и сложившийся, общая строка либо задушит второго, либо сожжёт первого. Эта разница и есть причина писать потолок у каждого адреса отдельно.

Порядок величин — как у адресной строки. Пятнадцать соединений в обычном режиме, пять в аккуратном, сорок в агрессивном; у прогреваемого адреса единица.

Умолчания у пуловой формы нет: пул без этой строки просто ничего не добавляет участникам. Порядок величин — наш, с адресного уровня.
Пример в конфигурации
<virtual-mta-pool pool-news>
    max-smtp-out 15    virtual-mta mta-news-1
    virtual-mta mta-news-2
</virtual-mta-pool>
Пятнадцать достанется каждому из двух адресов, а не разделится между ними: с пула выйдет до тридцати соединений.
жёлтым — — имена директив, голубым — блоки. Так же они подсвечены и в тексте карточки.
▲

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

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

Читают пуловую строку как общий запас группы

§ 3.3.13

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

Пишут одно значение на пул, где адреса разной зрелости

наш опыт

Чем чреватоОбщая строка обслуживает обоих одинаково, а им нужны разные величины — прогреву единица, сложившемуся полтора десятка.
Как заметитьПрогреваемый адрес набирает жалобы и уходит в спам, а сложившийся доставляет медленнее, чем мог бы.
Как правильноДержать потолок у каждого адреса отдельно, а в пуле оставить только список участников — так и делает Хаб.

Правят пул, когда у адреса есть своя строка

§ 6.3.22

Чем чреватоСобственная строка участника перекрывает пуловую, и та не действует вовсе. Ничто об этом не сообщает — обе строки в конфигурации выглядят рабочими.
Как заметитьПравку применили, конфигурация перечитана, а поведение адреса не изменилось ни на соединение.
Как правильноСмотреть вывод настроек участника, а не текст конфигурации: он показывает значение после слияния.
Совместимость
PowerMTA 6.0
описана в руководстве этой версии · платформа: любая
С какой версии директива доступна, вендор указывает не для всех — здесь пометки нет. Имя встречается и в издании руководства 5.0.
Справочные данные
Синтаксис
max-smtp-out <see-reference>
Значения
положительное целое, число одновременных соединений; форма та же, что у одноимённой строки уровня адреса отправки
Умолчание
unlimited § 6.3.22
Применение
reload, перезапуск не нужен
Очередь
уже поставленное в очередь не затронет
Где писать
<virtual-mta-pool>
Сколько раз
один раз в блоке
Всё здесь — из руководства, с разделом.
Наследование
Пул раздаёт значение участникам, собственная строка участника его перекрывает. Над обоими — потолок узла (total-max-smtp-out), под ними — лимит очереди получателя, который считается отдельно и складывается по всем очередям адреса. Подхватывается по pmta reload.
Как проверить на узле
Проверять надо не пул, а участника — команда печатает значение уже после слияния:
pmta show vmta-settings mta-news-1
Если у самого адреса есть своя строка, вывод покажет её, а пуловая не проявится нигде — по ней и видно, какое значение победило. § 6.3.22
В Хабе
Управляется
Конфигурации → Лимиты доставки
Цена ошибки
обратимо: вредит, пока стоит
Сценарии
Ротация адресов отправки