priority

<spool>

Приоритет расположения спула — от 100 высшего до 1 низшего
в конфигурации это строкаpriority 1внутри блока <spool>
Какой диск берётся первым

Умолчание — 1, самый низкий. Значения от 1 до 100.

Правило простое: каталог с бо́льшим приоритетом используется всегда, пока не заполнится. Заполнился — MTA берётся за следующий по старшинству. Каталоги с одинаковым приоритетом чередуются по кругу.

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

Что считать «заполнился», решает соседняя min-free-space.

Главная ловушка — умолчание у всех одинаковое. Заведя два каталога и не задав приоритетов, вы получите не иерархию, а чередование: оба получают по единице, и MTA пишет в них поровну.

Это может быть ровно тем, что нужно, — а может быть неожиданным, если второй каталог задумывался запасным. Разница видна только под нагрузкой, когда файлы обнаруживаются не там, где ожидались.

Что делает Хаб. Не пишет: каталог спула у него один, /var/spool/pmta, и выбирать не из чего. Приоритет остаётся вендорским.

Строка понадобилась бы на узле с несколькими дисками — раскладка, которую Хаб сегодня не предлагает.

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

Что ставить. Значение выбирают по замыслу раскладки:

Значение Когда
не писать каталог один — самый частый случай
одинаковое у всех несколько дисков, нагрузку делить поровну
разное иерархия: быстрый диск основной, медленный запасной

Числа стоит брать с разбегом (50 и 10, а не 2 и 1): вставить третий каталог между ними потом окажется нечем.

Диапазон, умолчание 1, правило «выше приоритет — берётся всегда, пока не заполнится» и чередование при равенстве — из руководства, § 3.3.2.3. Совет брать числа с разбегом наш.
Пример в конфигурации
# иерархия: быстрый диск основной, медленный запасной
<spool /var/spool/pmta/primary>
    priority 50</spool>

<spool /var/spool/pmta/secondary>
    priority 10
</spool>
Второй каталог возьмётся только тогда, когда первый упрётся в свой порог свободного места. Задай им одинаковый приоритет — и MTA писал бы в оба поровну.
жёлтым — — имена директив, голубым — блоки. Так же они подсвечены и в тексте карточки.
▲

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

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

Заводят второй каталог и не задают приоритеты

§ 3.3.2.3

Чем чреватоОба получают вендорскую единицу и чередуются: MTA пишет в них поровну. Каталог, задуманный запасным, оказывается основным наполовину.
Как заметитьФайлы писем копятся в обоих каталогах примерно одинаково.
Как правильноЗадать разные приоритеты явно — умолчание одинаковое для всех.

Берут соседние числа

наш опыт

Чем чреватоВставить третий каталог между двумя существующими окажется нечем: свободных значений между 2 и 1 нет. Придётся переписывать приоритеты у всех.
Как заметитьПриоритеты идут подряд — 1, 2, 3.
Как правильноБрать с разбегом: 10, 50, 90.
Совместимость
PowerMTA 6.0
описана в руководстве этой версии · платформа: любая
С какой версии директива доступна, вендор указывает не для всех — здесь пометки нет. Имя встречается и в издании руководства 5.0.
Справочные данные
Синтаксис
priority <integer>
Значения
целое от 1 до 100
Умолчание
1 § 3.3.2.3
Применение
reload, перезапуск не нужен
Очередь
затронет и то, что уже стоит в очереди
Где писать
<spool>
Сколько раз
один раз в блоке
Всё здесь — из руководства, с разделом.
Наследование
Директива живёт в <spool> и относится к одному каталогу. Наследования между каталогами нет: каждый блок описывает своё расположение целиком, а взаимодействие между ними и есть эти самые приоритеты.
Как проверить на узле
Раскладку видно в конфигурации, фактическое заполнение — на диске:
grep -n -A4 '^<spool' /etc/pmta/config
du -sh /var/spool/pmta/*
Если файлы копятся не в том каталоге, который вы считали основным, — почти наверняка приоритеты не заданы и действует чередование по умолчанию.
В Хабе
Цена ошибки
обратимо: вредит, пока стоит
Сценарии
Планирование мощности