TrueNAS скорость — Оптимизация, тестирование, настройка производительности | AdminWiki

TrueNAS скорость: Полное руководство по оптимизации и тестированию производительности

29 января 2026 6 мин. чтения #ssd #truenas #zfs #кэш #настройка #оптимизация #производительность #сеть #скорость #тестирование

Представь, что ты настроил свой TrueNAS сервер, но скорость передачи файлов оставляет желать лучшего. Знакомая ситуация? Давай разберемся, почему это происходит и как превратить твой NAS в скоростную магистраль данных. В этой статье я, как Senior DevOps, покажу тебе все этапы оптимизации — от диагностики до тонкой настройки.

Диагностика: почему TrueNAS медленный?

Перед оптимизацией нужно понять узкие места. Основные факторы, влияющие на скорость TrueNAS:

  • Сетевое оборудование — гигабитный или 2.5/10 Гбит Ethernet
  • Конфигурация дисков — RAIDZ, зеркала, количество vdev
  • Аппаратные ресурсы — объем RAM, наличие кэширующих SSD
  • Настройки ZFS — recordsize, compression, sync
  • Протоколы доступа — SMB, NFS, iSCSI
Важно: Скорость TrueNAS — это всегда компромисс между производительностью, надежностью и стоимостью. Не существует «волшебной кнопки», есть системный подход.

Шаг 1: Тестирование текущей скорости

Начнем с базовых измерений. Подключись к TrueNAS через Shell и выполни команды:

bash
# Тест скорости чтения/записи дисков
zpool status  # проверь состояние пула

# Тест последовательной скорости (используй свой путь)
sudo dd if=/dev/zero of=/mnt/pool1/testfile bs=1G count=1 oflag=dsync

# Тест скорости сети (установи iperf3 через пакетный менеджер)
iperf3 -s  # на TrueNAS
iperf3 -c IP_TRUENAS  # с клиента

# Проверка нагрузки в реальном времени
top  # смотри на load average и использование RAM
gstat  # мониторинг активности дисков (если установлен)

Нормальные показатели скорости для разных конфигураций

Конфигурация Ожидаемая скорость чтения Ожидаемая скорость записи Лимитирующий фактор
4x HDD RAIDZ1 (1 GbE) 100-115 MB/s 80-100 MB/s Сеть 1 Гбит
2x SSD Mirror (1 GbE) 110-115 MB/s 110-115 MB/s Сеть 1 Гбит
4x SSD RAIDZ1 (10 GbE) 800-1000 MB/s 400-600 MB/s Производительность SSD
HDD + SLOG/L2ARC (10 GbE) 300-500 MB/s 200-400 MB/s Запись на HDD

Шаг 2: Оптимизация сетевой скорости

Сеть — частая причина низкой скорости TrueNAS. Вот что нужно проверить:

Настройка MTU (Jumbo Frames)

Для 10 Гбит сетей обязательно настрой Jumbo Frames (MTU 9000):

bash
# Проверка текущего MTU
ifconfig | grep mtu

# Настройка в TrueNAS Web UI:
# Сеть → Интерфейсы → Редактировать интерфейс
# MTU: 9000 (только если все устройства в сети поддерживают!)
Внимание: Jumbo Frames требуют поддержки на всех устройствах цепи (свитчи, маршрутизаторы, клиенты). Неправильная настройка вызовет потерю пакетов.

Оптимизация SMB (Samba) для высокой скорости

Добавь эти параметры в дополнительные настройки SMB:

config
# В TrueNAS: Sharing → SMB → Advanced Options → Auxiliary Parameters
socket options = TCP_NODELAY IPTOS_LOWDELAY SO_KEEPALIVE SO_RCVBUF=524288 SO_SNDBUF=524288
read raw = yes
write raw = yes
max xmit = 65536
dead time = 15
getwd cache = yes

# Для 10 Гбит сетей добавь:
server multi channel support = yes
aio read size = 1
aio write size = 1

Шаг 3: Оптимизация пулов ZFS и настройка кэширования

Правильная конфигурация пула

  • Больше vdev = выше скорость — каждый vdev добавляет производительность
  • Зеркала быстрее RAIDZ — для скорости используй mirror (RAID1)
  • Оптимальный recordsize — 128K для медиафайлов, 16K для баз данных
bash
# Просмотр и изменение свойств набора данных
zfs get recordsize,compression,atime pool1/dataset

# Изменение recordsize (делай на пустом наборе данных!)
zfs set recordsize=128K pool1/media

# Отключение atime для увеличения скорости
zfs set atime=off pool1/dataset

Настройка SLOG и L2ARC для ускорения

SLOG (ZIL) ускоряет синхронные записи, L2ARC — чтение:

bash
# Добавление SLOG устройства (только для sync=standard)
zpool add pool1 log mirror /dev/nvme0n1 /dev/nvme0n2

# Добавление L2ARC кэша
zpool add pool1 cache /dev/nvme0n3

# Проверка статистики кэша
arcstat  # или zpool iostat -v pool1 1
Профессиональный совет: SLOG должен быть низколатентным NVMe с конденсаторами (power loss protection). L2ARC требует много RAM (примерно 1GB RAM на 10GB L2ARC).

Шаг 4: Оптимизация аппаратной части

  • RAM — чем больше, тем лучше. Минимум 8GB для базовой установки, 32GB+ для кэширования
  • CPU — ядра важнее частоты. ZFS любит многопоточность при сжатии
  • Диски — одинаковые модели в vdev. Разная производительность дисков снижает скорость всего vdev
  • Контроллеры — HBA в режиме IT. Избегай RAID контроллеров

Шаг 5: Мониторинг и тонкая настройка

bash
# Постоянный мониторинг производительности
zpool iostat -vl 1  # статистика пула каждую секунду

# Проверка загрузки ARC кэша
sysctl -a | grep arc  # или cat /proc/spl/kstat/zfs/arcstats

# Настройка параметров ARC (в /etc/sysctl.conf)
vfs.zfs.arc_max="4G"  # лимит ARC кэша
vfs.zfs.prefetch_disable="0"  # включить prefetch
vfs.zfs.vdev.async_write_max_active="10"  # активные асинхронные записи

Чек-лист быстрой оптимизации

  1. Проверь сеть — тест iperf3 между клиентом и TrueNAS
  2. Настрой правильный MTU для своей сети
  3. Оптимизируй SMB настройки для своего использования
  4. Установи recordsize в зависимости от размера файлов
  5. Отключи atime на редко используемых наборах данных
  6. Добавь SLOG если используешь синхронные записи (NFS, iSCSI, БД)
  7. Увеличь RAM для лучшего кэширования
  8. Используй больше vdev для параллелизации операций
Заключительный совет: Скорость TrueNAS — это система. Нельзя ускорить только один компонент и ждать чуда. Действуй комплексно: сеть → настройки ZFS → аппаратура → мониторинг.

Частые проблемы и решения

Проблема: Скорость падает со временем

Решение: Проверь фрагментацию пула: zpool list -o fragmentation. Если >20%, рассмотри перезапись данных или добавление дисков.

Проблема: Хорошая скорость чтения, но медленная запись

Решение: Проверь настройки sync. Для не критичных данных установи zfs set sync=disabled pool/dataset. Или добавь SLOG.

Проблема: Скорость нестабильная, скачет

Решение: Мониторь нагрузку в реальном времени: gstat -p. Возможно, фоновая задача (scrub, resilver) крадет ресурсы.

Поделиться:
Сохранить гайд? В закладки браузера