TDB Documentation portal logo
Помощь
Обновлена 30 июля 2026 г. в 16:49

Рекомендации по настройке оповещений для модуля cooler

В данном разделе приведены типовые ситуации, требующие настройки оповещений при работе с модулем cooler, их описание и инструкции по устранению возникающих проблем.

Логика срабатывания (триггеры) представлена в качестве примеров в формате Prometheus (PromQL).

Узнать больше о модуле cooler можно в разделе Архивация данных по их времени жизни.

Выполнение задачи по охлаждению замедлилось

Уровень: Warning

Время полного прохода спейса существенно превышает лимиты, заданные в конфигурации роли roles.cooler в опции full_scan_time.

Пример триггера:

Сканирование идет, но оно заняло в 2 раза больше времени, чем значение, указанное в опции full_scan_time. В примере ниже для опции full_scan_time задано значение 3600:

# Замените 3600 на значение full_scan_time из вашей конфигурации (в секундах)cooler_full_scan_elapsed > 2 * 3600

Варианты решения:

  • Проверка диска. Зависание может быть связано с тем, что движок vinyl встал на compaction и временно ограничил скорость записи;
  • Валидация конфигурации. Если оповещение срабатывает стабильно, это означает, что модуль expirationd не успевает за фактическим ростом спейса. Для решения в конфигурации технологической роли roles.cooler увеличьте значение опции tuples_per_iteration, чтобы файбер обрабатывал данные более интенсивно, либо увеличьте значение параметра full_scan_time.

Возникновение большого количества ошибок при перемещении данных

Уровень: Critical

Зафиксирован постоянный поток ошибок во время выполнения задачи охлаждения. Это означает, что модуль expirationd находит кортежи, подлежащие архивации, но модуль cooler не может перенести их в спейс на vinyl. На данный момент возможны только ошибки, связанные с отменой MVCC-транзакции.

Пример триггера:

Средняя частота ошибок за последние 5 минут превышает допустимый порог (более 1 ошибки в секунду):

rate(cooler_errors[5m]) > 1

Решение:

Оповещение сигнализирует об ошибках конфликта транзакций (MVCC commit failed). Решение аналогично шагам в разделе Аномальное количество несовпадений версий.

Аномальное количество несовпадений версий

Уровень: Warning

Растет значение метрики cooler_mismatches. Это означает, что пока архиватор готовил перенос кортежа в движок vinyl, пользовательский файбер успел изменить этот же кортеж в memtx.

Пример триггера:

Срабатывает, если фиксируется более 5 несовпадений в секунду на протяжении 5 минут:

rate(cooler_mismatches[5m]) > 5

Варианты решения:

  • Анализ профиля нагрузки. Под логику охлаждения попадают данные, которые на самом деле являются "горячими" - их постоянно модифицируют пользователи.
  • Проверка функции-предиката. Вероятно, выбрано некорректное условие архивации или оно работает слишком интенсивно: данные начинают охлаждаться до того, как над ними завершились бизнес-операции.

Неэффективное сканирование

Уровень: Warning

Файбер модуля expirationd тратит безрезультатно ресурсы CPU, сканируя данные, но ничего при этом не охлаждает.

Пример триггера:

Отношение охлажденных кортежей к отсканированным за последние 15 минут составляет менее 1% (при условии, что сканирование идет):

(rate(cooler_tuples_cooled[15m]) / rate(cooler_tuples_scanned[15m])) * 100 < 1andrate(cooler_tuples_scanned[15m]) > 0

Решение:

Проверьте конфигурацию технологической роли roles.cooler. Скорее всего, обход настроен по первичному индексу, и архиватор на каждой итерации вынужден проходить весь спейс.

Критический рост размера архива

Уровень: Critical

Скорость утилизации диска vinyl-ом превышает допустимые нормы, либо общий объем архива (значение cooler_vinyl_bytes_total) приближается к лимиту выделенного дискового пространства.

Пример триггера:

Прогнозируемое время до полного заполнения диска составляет менее 48 часов, либо размер vinyl-спейса превысил фиксированный порог (например, 1 ТБ):

predict_linear(cooler_vinyl_bytes_total[6h], 172800) > 1e12

Варианты решения:

  • Проверка compaction. Проверьте внутренний статус vinyl через команду box.stat.vinyl(). Возможно, размер растет из-за того, что движок не успевает делать очистку устаревших версий кортежей.
  • Очистка архива. Если данные в vinyl копятся бесконечно, необходимо обсудить внедрение процесса окончательного удаления старых кортежей уже из самого архива vinyl, либо расширить дисковую память на сервере.