Настройка кэша ZFS ARC

Proxmox по умолчанию устанавливает zfs_arc_max на 50% системной памяти, максимум 16 ГиБ. На хосте домашней лаборатории с 64 ГиБ памяти, работающем с четырьмя виртуальными машинами, это редко то, что вам нужно, и неправильное значение здесь незаметно голодает ваши виртуальные машины оперативной памяти, как только начинается резервная копия с интенсивным использованием ARC. Лучшие приложения для настройки кэша ZFS ARC на настольных компьютерах и серверах домашних лабораторий дают вам две вещи, которые вам нужны, чтобы принять решение: текущий коэффициент попадания и выбор размера с учетом доступной памяти.

Мы протестировали семь вариантов, все работают на Linux (где на самом деле находится OpenZFS), несколько имеют клиентов для Windows и macOS на стороне панели управления. Шесть бесплатных. Все семь хорошо подходят для домашней лаборатории Proxmox.

На что обратить внимание

Каждый инструмент в этом списке должен ответить на три вопроса по настройке ARC:

Выборки разделены на три группы: инструменты командной строки, которые входят в OpenZFS, панели управления, которые визуализируют данные CLI, и инструменты оркестровки, которые управляют состоянием ARC вместе со снимками.

Быстрое сравнение

Приложение Лучше всего для Платформы Бесплатный план Начальная цена Лицензия
arc_summary Подробная сводка ARC Linux, FreeBSD, macOS Да Бесплатно CDDL
arcstat Мониторинг ARC в реальном времени Linux, FreeBSD Да Бесплатно CDDL
zpool iostat Статистика ввода-вывода на уровне пула Linux, FreeBSD, macOS Да Бесплатно CDDL
Cockpit Веб-панель управления для альтернативы Proxmox Linux Да Бесплатно LGPL
Netdata Графики ARC в реальном времени Linux, macOS, FreeBSD Да Бесплатный уровень GPL / облако
Prometheus + Grafana Полные исторические панели управления Linux, кроссплатформенный интерфейс Да Бесплатно Apache 2
Sanoid Координация снимков + ARC Linux Да Бесплатно GPLv3

1. arc_summary – Лучшая подробная сводка ARC

arc_summary поставляется с OpenZFS и является наиболее полезной командой для настройки ARC. Выполнение arc_summary выводит коэффициент попадания, баланс MFU и MRU, эффективность предвыборки и статус L2ARC в одном отчете. На Proxmox VE 8.x и 9.x он уже установлен.

Где это не так хорошо: Только командная строка. Нет исторических данных (это снимок “прямо сейчас”).

Цены:

Платформы: Linux, FreeBSD, macOS, где установлен OpenZFS.

Загрузка: Включено в пакет zfsutils-linux на Debian/Proxmox. См. openzfs.org.

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

2. arcstat – Лучшее для мониторинга ARC в реальном времени

arcstat — это компаньон в реальном времени к arc_summary. Выполнение arcstat 1 дает вам поминутное представление коэффициента попадания, попаданий MRU/MFU и процента попадания по требованию. Идеально подходит для наблюдения влияния изменения размера ARC в режиме реального времени.

Где это не так хорошо: Только командная строка. Вывод с большим количеством столбцов требует несколько прочтений, чтобы понять.

Цены:

Платформы: Linux, FreeBSD.

Загрузка: Включено в пакет zfsutils-linux.

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

3. zpool iostat – Лучше всего для статистики ввода-вывода на уровне пула

zpool iostat завершает трио командной строки. Где arc_summary и arcstat охватывают кэш, zpool iostat показывает основной пул: операции чтения/записи, пропускную способность и задержку на vdev. Вот как вы различаете “ARC недостаточного размера” от “сам пул медленный”.

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

Цены:

Платформы: Linux, FreeBSD, macOS.

Загрузка: Включено с OpenZFS.

Вывод: Инструмент, который указывает, поможет ли настройка ARC, или ваше узкое место находится в другом месте.

4. Cockpit – Лучшая веб-панель управления для альтернативы Proxmox

Cockpit — это веб-панель управления сервером от Red Hat, а его плагин ZFS предоставляет статус ARC, здоровье пула и свойства набора данных через интерфейс браузера. Если вы работаете на TrueNAS SCALE, Cockpit является естественной веб-консолью для хостов, отличных от TrueNAS.

Где это не так хорошо: Не так отполирована, как веб-интерфейс TrueNAS. Охват плагина ZFS является базовым по сравнению с глубиной командной строки.

Цены:

Платформы: Linux (сервер). Любой браузер (клиент).

Загрузка: cockpit-project.org

Вывод: Лучший выбор, если вам нужен веб-интерфейс, который не является собственным Proxmox.

5. Netdata – Лучше всего для графиков ARC в реальном времени

Netdata собирает сотни метрик в секунду, и его модуль ZFS отображает коэффициент попадания ARC, размер и скорость вытеснения как диаграммы потоковой передачи в реальном времени. Бесплатный уровень полностью работает на вашей машине и никогда не связывается домой. Облачный уровень не требуется для агрегации множеством хостов.

Где это не так хорошо: Агрессивное опрашивание по умолчанию может заметно увеличить нагрузку на CPU на хостах с низкой мощностью. Облачные функции — это платный путь.

Цены:

Платформы: Linux, FreeBSD, macOS.

Загрузка: netdata.cloud

Вывод: Лучший выбор, если вы хотите потоковые графики ARC в реальном времени без настройки Prometheus и Grafana самостоятельно.

6. Prometheus + Grafana – Лучше всего для полных исторических панелей управления

Prometheus + Grafana — это стандартная отраслевая комбинация для исторического мониторинга. Проект сообщества zfs_exporter скребет статистику ARC и пула, Prometheus сохраняет их, а Grafana отображает их с панелями управления, которыми вы можете делиться (или извлекать из сообщества).

Где это не так хорошо: Установка — не одна команда. Вы работаете три сервиса (экспортер, Prometheus, Grafana) и конфигурируете удержание.

Цены:

Платформы: Linux для сборщиков; браузер (Windows, macOS, Linux) для Grafana.

Загрузка: prometheus.io, grafana.com, github.com/pdf/zfs_exporter

Вывод: Лучший выбор, если вы хотите отслеживать коэффициент попадания ARC в течение месяцев, а не минут.

7. Sanoid – Лучше всего для координации снимков и ARC

Sanoid управляет снимками ZFS, а его спутник Syncoid обрабатывает репликацию. Ни один из них напрямую не настраивает ARC, но расписание Sanoid формирует давление ARC: агрессивный ритм снимков создает волнение кэша. Чтение конфигурации Sanoid рядом с вашим коэффициентом попадания ARC — это то, как вы ловите “наш ARC хорош, кроме как в 2 часа ночи, когда начинаются снимки”.

Где это не так хорошо: Не инструмент ARC. Полезно только как часть полной картины операций ZFS.

Цены:

Платформы: Linux.

Загрузка: github.com/jimsalterjrs/sanoid

Вывод: Выберите это, если ваш коэффициент попадания ARC нормальный в течение дня, но падает во время окон снимков.

Как выбрать правильный

FAQ

Какой правильный размер для ZFS ARC на Proxmox?

Зарезервируйте памяти для ваших виртуальных машин и самого Proxmox (2–4 ГиБ), и дайте ZFS остальное. На хосте с 64 ГиБ, работающем две виртуальные машины по 24 ГиБ, это примерно 12 ГиБ для ARC. Начните консервативно и растите, если arc_summary показывает коэффициент попадания ниже 80%.

Как установить zfs_arc_max на Proxmox?

Создайте /etc/modprobe.d/zfs.conf со строкой options zfs zfs_arc_max=BYTES, затем запустите update-initramfs -u и перезагрузитесь. Замените BYTES на ваше выбранное значение в сырых байтах.

Стоит ли L2ARC?

Только если ваш коэффициент попадания ARC уже выше 90% и вы видите частые промахи. Ниже этого, вам нужна больше памяти для основного ARC. Если коэффициент попадания L2ARC остается ниже 20%, слоты SSD лучше использовать для специального vdev или зеркала пула.

Что такое arc_summary и как его запустить?

arc_summary — это сценарий CLI, который входит в OpenZFS. Запустите его как root в оболочке Proxmox. Он выводит полный отчет ARC, включая коэффициент попадания, баланс MFU и MRU и статус L2ARC.

Почему моя виртуальная машина Proxmox медленная после большой резервной копии?

Почти всегда давление вытеснения ARC. Резервная копия тянет большие объемы через кэш и вытесняет горячие данные виртуальной машины, поэтому следующее чтение виртуальной машины — это медленное попадание пула. Смотрите arcstat 1 во время резервной копии, чтобы подтвердить.