dummy-smtp-await-slot

Global

Что делать, когда мест для нового поддельного соединения нет
в конфигурации это строкаdummy-smtp-await-slot falseвнутри блока Global
Отказать сразу или подождать

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

Умолчание false — отказать сразу. Приёмник отвечает 421 в приветствии — «служба недоступна» — и закрывает соединение.

true — подождать освобождения места. Соединение висит, пока место не появится.

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

Главная ловушка — 421 меняет поведение самой отправки. Этот код обрабатывается отправляющей стороной, и если у неё включён smtp-421-means-mx-unavailable, она бросит соединение и уйдёт к следующей записи MX. В нагрузочном прогоне это значит, что часть потока уходит мимо поддельного приёмника, и цифра получается заниженной.
Что делает Хаб. Не пишет: механизм на узлах не поднимается. Для замера потолка правильнее ожидание: оно даёт кривую задержки, а не обрыв, — и не задевает обработку кода 421 на отправляющей стороне.
Рекомендуемые значения

Для замера потолка — ожидание. Кривая задержки говорит о запасе больше, чем число отказов.

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

Помните про 421 на своей стороне. При отказе поведение отправки зависит от smtp-421-means-mx-unavailable, и результат прогона зависит от неё же.

Разделение «замер потолка против проверки перегрузки» — наше. Из руководства здесь умолчание false и точное поведение при нём: ответ 421 в приветствии и закрытие соединения.
Пример в конфигурации
# замеряем потолок: пусть соединения ждут, а не отваливаются
dummy-smtp-ip 127.0.0.1
dummy-smtp-port 2525
dummy-smtp-await-slot true
С умолчанием вместо роста задержки вы получили бы поток ответов 421 — и часть отправки ушла бы искать другой сервер вместо того, чтобы упереться в потолок.
жёлтым — — имена директив, голубым — блоки. Так же они подсвечены и в тексте карточки.
▲

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

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

Замеряют потолок с умолчанием

наш опыт

Чем чреватоПриёмник отвечает 421, отправляющая сторона может уйти к другой записи MX, и часть потока проходит мимо замера. Цифра выходит заниженной, а прогон выглядит успешным.
Как заметитьВ журнале прогона много ответов 421, а замеренный потолок ниже ожидаемого.
Как правильноВключить ожидание — потолок проявится ростом задержки.

Считают ожидание безопасным по определению

наш опыт

Чем чреватоСоединения копятся вместо того, чтобы обрываться. При долгом прогоне это упирается уже не в поддельный приёмник, а в лимиты самой машины на число открытых сокетов.
Как заметитьПрогон упирается в ошибки уровня системы, а не в поведение узла.
Как правильноОграничивать нагрузку со стороны отправки, а не полагаться на то, что приёмник её примет.
Совместимость
PowerMTA 6.0
описана в руководстве этой версии · платформа: любая
С какой версии директива доступна, вендор указывает не для всех — здесь пометки нет. Имя встречается и в издании руководства 5.0.
Справочные данные
Синтаксис
dummy-smtp-await-slot <boolean>
Значения
yes или no; true и false принимаются наравне с ними
Умолчание
false § 3.3.1.57.3
Применение
reload, перезапуск не нужен
Очередь
уже поставленное в очередь не затронет
Где писать
Global
Сколько раз
один раз в блоке
Всё здесь — из руководства, с разделом.
Наследование
Строка уровня узла: пишется в корне файла, не внутри блока. Наследования у неё нет. Подхватывается по pmta reload; на уже установленные соединения не влияет.
Как проверить на узле
Какое поведение действует, видно по самим ответам приёмника под нагрузкой:
grep -n dummy-smtp-await-slot /etc/pmta/config
grep -c '421' /var/log/pmta/pmta.log
Поток ответов 421 в журнале при нагрузочном прогоне означает, что действует умолчание. Хаб этот механизм не задействует.
В Хабе
Цена ошибки
обратимо: вредит, пока стоит
Сценарии
Планирование мощности