thread-max-priority

Global

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

Умолчание — 0. Директива только для Unix.

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

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

Умолчание 0 — самая высокая срочность из обычных: числа приоритетов процесса в Unix растут в сторону меньшей срочности.

Главная ловушка — «максимальный» здесь про скорость, а не про число. Умолчание быстрого конца — 0, медленного — 15. То есть у «максимального приоритета» число меньше. Настраивая по интуиции «max больше min», границы меняют местами и получают обратное задуманному.

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

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

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

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

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

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

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

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

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

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

Считают, что у максимального приоритета число больше

§ 3.3.1.37

Чем чреватоУмолчания говорят обратное: быстрый конец 0, медленный 15. Настроенные по интуиции границы меняются местами, и потоки, которые должны быть быстрыми, становятся медленными.
Как заметитьБыстрый конец задан бо́льшим числом, чем медленный.
Как правильноПроверять результатом — фактическими приоритетами процессов, а не чтением: пример руководства и его умолчания расходятся в направлении шкалы.

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

§ 3.3.1.37

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