thread-min-priority

Global

Наименьший приоритет процесса для потоков узла
в конфигурации это строкаthread-min-priority 15внутри блока Global
Медленный конец диапазона

Умолчание — 15. Директива только для Unix — руководство помечает это отдельно.

Строка задаёт медленный конец диапазона приоритетов процесса, с которыми работают потоки MTA. Быстрый конец задаёт парная thread-max-priority, и руководство описывает их одним разделом: это две границы одного диапазона, а не две независимые настройки.

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

Главная ловушка — менять одну границу из двух. Это диапазон, и осмысленно двигать его целиком. Поднятый медленный конец при нетронутом быстром сужает диапазон, и разница между «быстрыми» и «медленными» потоками пропадает — MTA теряет возможность разводить работу по важности.

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

Что делает Хаб. Не пишет — остаются вендорские умолчания.

Узел при этом не всегда один на машине: рядом с MTA Хаб может поставить прокси-гейт hubgate и сервер имён PowerDNS — это и есть случай «делит машину с другим сервером», который называет руководство. Приоритеты Хаб всё равно не трогает.

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

Что ставить. Ответ вендора однозначен:

Значение Когда
не писать всегда, если узел на машине один
своё значение узел делит машину с другим сервером, и приоритеты надо развесить

Во втором случае двигать надо обе границы, а не одну. И помнить направление: бо́льшее число означает меньшую срочность.

Умолчание 15, пометка «только для Unix», совет оставлять умолчания и случай «узел делит машину с другим сервером» — из руководства, § 3.3.1.37. Разбор направления шкалы и совет двигать обе границы — наши.
Пример в конфигурации
# диапазон двигают целиком, а не одну его границу
thread-min-priority 5thread-max-priority 50
Пример из руководства. Числа приоритетов процесса растут в сторону меньшей срочности — умолчания это подтверждают: медленный конец 15, быстрый 0.
жёлтым — — имена директив, голубым — блоки. Так же они подсвечены и в тексте карточки.
▲

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

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

Двигают одну границу из двух

§ 3.3.1.37

Чем чреватоДиапазон сужается, и MTA теряет возможность разводить потоки по важности. Настройка выглядит сделанной, а результат обратный задуманному.
Как заметитьВ конфигурации задана одна из двух строк.
Как правильноЗадавать обе либо не задавать ни одной.

Путают направление шкалы

§ 3.3.1.37

Чем чреватоЧисла приоритетов процесса в Unix растут в сторону меньшей срочности. Настроенные «по интуиции», границы меняются местами, и потоки, которые должны быть быстрыми, становятся медленными.
Как заметитьМедленный конец задан меньшим числом, чем быстрый.
Как правильноСверяться с умолчаниями: медленный конец 15, быстрый 0.
Совместимость
PowerMTA 6.0
описана в руководстве этой версии · linux
С какой версии директива доступна, вендор указывает не для всех — здесь пометки нет. Имя встречается и в издании руководства 5.0.
Справочные данные
Синтаксис
thread-min-priority <number>
Значения
целое, приоритет процесса Unix
Умолчание
15 § 3.3.1.37
Применение
reload, перезапуск не нужен
Очередь
уже поставленное в очередь не затронет
Где писать
Global
Сколько раз
один раз в блоке
Всё здесь — из руководства, с разделом.
Наследование
Директива пишется в корне файла конфигурации и действует на весь узел. Наследования у неё нет, зато есть парность: обе границы диапазона руководство описывает одним разделом и менять их следует вместе.
Как проверить на узле
Обе границы читают вместе — порознь они не имеют смысла:
grep -n 'thread-min-priority\|thread-max-priority' /etc/pmta/config
ps -eo pid,ni,comm | grep -i pmta
Вторая команда показывает фактические приоритеты процессов узла. Если одна граница задана, а вторая нет, диапазон сужен — и это почти наверняка не то, чего хотели.
В Хабе
Цена ошибки
опасно: последствия переживут откат
Сценарии
Планирование мощности