ZFS

ARC

ARC — это кэш чтения ZFS в оперативной памяти

Рекомендации по ARC для разных объемов ОЗУ

16 ГБ для 64 ОЗУ = 17179869184

24 Гб для 128 ОЗУ = 25769803776

32 Гб для 196 ОЗУ = 34359738368

  1. Откройте файл конфигурации:

    nano /etc/modprobe.d/zfs.conf

  2. Добавьте или измените строку (например, ARC 64 ГБ):

    options zfs zfs_arc_max=68719476736

    Значение задается в байтах

    64x1024x1024x1024=68719476736

  3. Обновите initramfs и перезагрузитесь:

    update-initramfs -u -k all

    proxmox-boot-tool refresh

Применить прямо сейчас (без перезагрузки)

echo 51539607552 > /sys/module/zfs/parameters/zfs_arc_max

Проверьте реальный параметр ядра

cat /sys/module/zfs/parameters/zfs_arc_max

Реальное потребление ZFS ARC

zarcsummary -s arc

arc_summary -s arc в старых версиях

Диагностика производительности ZFS в реальном времени

Выводит детальную статистику ввода-вывода (I/O) для конкретного пула.

zpool iostat -v rpool 5
аналог для ext4
apt install sysstat
iostat -xz 5

Мониторинг ARC (Adaptive Replacement Cache) — оперативного кэша ZFS в оперативной памяти

zarcstat 1

arcstat 1 в старых версиях

zarcstat -f miss,size,dmh% 1

Misses (промахи). Это количество раз в секунду, когда ZFS не нашла нужные данные в оперативной памяти и была вынуждена пойти за ними на физические диски.

ddh% (Data Demand Hit %) — Это ваш основной показатель. Он показывает, какой процент данных, которые запросили приложения (1С, SQL), был найден в кэше.

Например, 65.5% означает, что за оставшимися 34.5% данных ZFS пошла на диски. Должен стремиться к 100%

dmh% (Data Metadata Hit %) — Показывает, сколько метаданных (информация о структуре файлов, правах и т.д.) найдено в кэше. Обычно он всегда близок к 100%.

size - кеш

  zarcstat -f time,hits,miss,hit%,size,c,metasz,mh% 1

Тюнинг для Proxmox Backup Server (PBS)

Включаем сжатие lz4 (снижает нагрузку на медленные диски за счет CPU)

zfs set compression=lz4 pbs-data

Отключаем лишние операции записи метаданных

zfs set atime=off pbs-data

Ограничиваем размер блока (PBS по умолчанию пишет чанками, 128k — ок)

zfs set recordsize=128k pbs-data