precached-refresh-interval

<dns>

Как часто обновляются предварительно закэшированные записи
в конфигурации это строкаprecached-refresh-interval 5mвнутри блока <dns>
Ваше расписание вместо чужого срока жизни

Умолчание — 5m. Строка задаёт, как часто MTA заново разрешает домены из списка предварительного кэша.

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

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

Работает она только вместе со списком: precached-domains-file.

Главная ловушка — интервал длиннее того, что ставил приёмник. Короткий срок жизни записи у крупного приёмника стоит не для красоты: это его способ переключить трафик быстро — увести его с отказавшего узла, развести по площадкам. Интервал в полчаса вместо пяти минут отключает этот способ на полчаса.

Вторая половина обратная: короткий интервал на длинном списке — это постоянная нагрузка на резолвер. Число доменов, делённое на интервал, и есть запросов в секунду — и они идут всегда, а не только когда есть письма.

Что делает Хаб. Не пишет: предварительный кэш не задействован вовсе, блока <dns> в конфигурации нет.
Рекомендуемые значения

Что ставить. Интервал сравнивают со сроком жизни записи у самого приёмника:

Значение Когда
5m (умолчание) список короткий, приёмники крупные и маршруты меняют
короче приёмник ставит совсем короткий срок жизни, и отставать нельзя
длиннее список велик, а маршруты у этих доменов не меняются годами

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

Умолчание 5m, замена срока жизни записи и то, что обычные сроки для этих доменов игнорируются, — из руководства, § 3.3.16.2. Расчёт нагрузки и совет сравнивать со сроком приёмника — наши.
Пример в конфигурации
# интервал короче того, что ставят крупные приёмники
<dns>
    precached-domains-file /etc/pmta/precached-domains.txt
    precached-refresh-interval 2m</dns>
Собственный срок жизни записей у этих доменов игнорируется: обновление идёт по этому расписанию и только по нему.
жёлтым — — имена директив, голубым — блоки. Так же они подсвечены и в тексте карточки.
▲

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

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

Берут интервал длиннее срока жизни записи у приёмника

§ 3.3.16.2

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

Ставят короткий интервал на длинном списке

наш опыт

Чем чреватоКаждое обновление — запросы по всем доменам списка сразу, и идут они постоянно. Механизм, снимающий нагрузку с резолвера, начинает её создавать.
Как заметитьРезолвер отвечает медленнее после включения кэша, а очередь при этом пуста.
Как правильноСчитать: число доменов, делённое на интервал, — это запросов в секунду. Сокращать список или удлинять интервал.
Совместимость
PowerMTA 6.0
описана в руководстве этой версии · платформа: любая
С какой версии директива доступна, вендор указывает не для всех — здесь пометки нет. Имя встречается и в издании руководства 5.0.
Справочные данные
Синтаксис
precached-refresh-interval <time-interval>
Значения
промежуток времени, например 5m или 2m
Умолчание
5m § 3.3.16.2
Применение
reload, перезапуск не нужен
Очередь
уже поставленное в очередь не затронет
Где писать
<dns>
Сколько раз
один раз в блоке
Всё здесь — из руководства, с разделом.
Наследование
Директива живёт в <dns> и относится ко всему списку сразу: блок один на узел, и своего интервала у отдельного домена быть не может. Это ограничение существенное — приёмники ставят разные сроки жизни, а интервал здесь один.
Как проверить на узле
Интервал читают вместе с длиной списка — они задают нагрузку:
grep -n -A4 '^<dns>' /etc/pmta/config
wc -l /etc/pmta/precached-domains.txt
dig +noall +answer +ttlid gmail.com MX | head -3
Третья команда показывает срок жизни записи у приёмника — с ним и надо сравнивать интервал. Число доменов, делённое на интервал, даёт постоянную нагрузку на резолвер в запросах в секунду.
В Хабе
Цена ошибки
обратимо: вредит, пока стоит
Сценарии
Разобраться с доставляемостью · Настроить темп под провайдера