TrueNAS тормозит передача по сети — решение проблемы и оптимизация скорости | AdminWiki
Timeweb Cloud — сервера, Kubernetes, S3, Terraform. Лучшие цены IaaS.
Попробовать

TrueNAS тормозит передача по сети: полное руководство по диагностике и оптимизации

20 марта 2026 7 мин. чтения #nfs #samba #truenas #zfs #диагностика #оптимизация #передача по сети #скорость сети

Если ваш TrueNAS тормозит передача по сети, и скорость копирования файлов оставляет желать лучшего — вы не одиноки. Это распространённая проблема, которая может иметь десятки причин: от неправильных настроек сети до проблем с оборудованием. Давай разберём эту ситуацию системно, как настоящий инженер.

Шаг 1: Базовый бенчмарк — измеряем реальную скорость

Прежде чем лезть в настройки, нужно понять масштаб проблемы. Запустим несколько тестов, чтобы отделить сетевые проблемы от проблем с дисками.

Важно: Все тесты проводим с отключённым сжатием и дедупликацией на клиенте. Используем файлы размером 1-10 ГБ для получения адекватных результатов.

Тест скорости локального диска TrueNAS

Сначала проверим, не тормозят ли сами диски. Подключаемся к TrueNAS через SSH:

bash
# Тест последовательной записи/чтения
fio --name=test --ioengine=libaio --rw=write --bs=128k --numjobs=1 --size=1G --runtime=60 --time_based --direct=1

# Тест случайного доступа
fio --name=randtest --ioengine=libaio --rw=randwrite --bs=4k --numjobs=16 --size=1G --runtime=60 --time_based --direct=1

Тест скорости сети

На клиентской машине (Linux/Windows/Mac) устанавливаем iperf3:

bash
# На TrueNAS (сервер):
iperf3 -s

# На клиенте:
iperf3 -c IP_адрес_TrueNAS -t 30 -P 4

Если iperf3 показывает близкую к гигабиту скорость (940 Мбит/с), а передача файлов всё равно тормозит — проблема в настройках протоколов или ZFS.

Шаг 2: Диагностика сетевого оборудования

Часто проблема кроется в «железе». Проверим основные моменты:

  • Кабели: Используйте Cat5e или Cat6. Cat5 может не вытянуть гигабит на длинных дистанциях.
  • Порты коммутатора: Убедитесь, что все порты работают в режиме 1 Гбит/с full duplex.
  • Дуплекс: Принудительно установите 1000/full в настройках сетевой карты TrueNAS.
  • MTU: Для jumbo frames нужна поддержка на всём пути (коммутатор, сетевая карта, настройки ОС).
Осторожно с Jumbo Frames: Установка MTU 9000 может как ускорить, так и полностью сломать сеть, если где-то в цепочке оборудование не поддерживает большие кадры.

Проверка сетевых настроек в TrueNAS

bash
# Просмотр текущих настроек интерфейса
ifconfig ix0  # замени ix0 на имя своего интерфейса

# Проверка ошибок
netstat -i

# Статистика по протоколам TCP
netstat -s -p tcp | head -30

Шаг 3: Оптимизация SMB (Samba) — самая частая причина

Если передача по сети через SMB тормозит, нужно тонко настроить сервис. Идём в Services → SMB → Edit и настраиваем Auxiliary Parameters:

config
# Основные параметры для ускорения
socket options = TCP_NODELAY IPTOS_LOWDELAY SO_KEEPALIVE SO_RCVBUF=131072 SO_SNDBUF=131072
read raw = yes
write raw = yes
max xmit = 65536
dead time = 15
getwd cache = yes
min receivefile size = 16384
use sendfile = yes
aio read size = 16384
aio write size = 16384

# Для современных клиентов
server multi channel support = yes

# Отключаем ненужные проверки (осторожно!)
smb2 leases = no
smb2 max read = 8388608
smb2 max write = 8388608

Настройка размера буферов SMB

Добавьте в тот же Auxiliary Parameters для конкретных share:

config
[share_name]
  write cache size = 262144  # 256KB
  read raw = yes
  write raw = yes
  max xmit = 65536

Шаг 4: Тонкая настройка ZFS — когда дисковая подсистема тормозит

Даже с быстрыми дисками ZFS может ограничивать скорость из-за настроек. Проверим и оптимизируем:

bash
# Просмотр текущих настроек пула
zpool get all pool_name

# Критически важные параметры для скорости
zfs set atime=off pool_name/dataset      # отключаем запись времени доступа
zfs set compression=lz4 pool_name/dataset # lz4 быстрее gzip
zfs set recordsize=1M pool_name/dataset   # для больших файлов
zfs set primarycache=all pool_name/dataset # кэшируем всё в ARC

# Для записи маленьких файлов
zfs set recordsize=128K pool_name/dataset

# Проверка фрагментации
zpool list -v

Оптимизация ARC (кэш ZFS)

bash
# Просмотр статистики ARC
arcstat

# Настройка лимитов ARC (в GiB)
sysctl vfs.zfs.arc_max=4294967296  # 4GB
sysctl vfs.zfs.arc_min=2147483648  # 2GB

# Для записи в sysctl.conf
echo 'vfs.zfs.arc_max=4294967296' >> /etc/sysctl.conf
echo 'vfs.zfs.arc_min=2147483648' >> /etc/sysctl.conf

Шаг 5: Оптимизация NFS (если используете)

Для NFS есть свои тонкости. Редактируем службу NFS в TrueNAS:

bash
# На клиенте Linux монтируем с оптимизациями:
mount -t nfs -o rw,async,noatime,nodev,nosuid,rsize=65536,wsize=65536,tcp,timeo=600,retrans=2 \
  truenas_ip:/mnt/pool/dataset /mnt/nfs_mount

# Или в /etc/fstab:
truenas_ip:/mnt/pool/dataset  /mnt/nfs_mount  nfs  rw,async,noatime,nodev,nosuid,rsize=65536,wsize=65536,tcp,timeo=600,retrans=2  0  0

Шаг 6: Расширенная диагностика — когда ничего не помогает

Мониторинг в реальном времени

bash
# Мониторинг сетевой активности
iftop -i ix0 -n  # показывает кто сколько трафика гонит

# Дисковая активность
iostat -x 1

# ZFS I/O
zpool iostat -v 1

# Поиск узких мест
dtrace -n 'io:::start { printf("%s %d", args[0]->dev_statname, args[0]->b_bcount); }'

Проверка на аппаратные ошибки

bash
# SMART дисков
smartctl -a /dev/ada0 | grep -E "(Reallocated|Pending|Uncorrectable|Temperature)"

# Ошибки памяти
dmesg | grep -i error

# Статус RAID (если используется)
zpool status -x

FAQ — частые вопросы и ответы

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

Это классическая проблема ZFS. Сначала данные пишутся в быстрый ZIL (если есть SLOG), потом происходит flush на основные диски. Решение: добавьте SSD в качестве SLOG устройства для пула.

Гигабитная сеть, а скорость только 30-40 МБ/с — что не так?

Скорее всего проблема в: 1) Кабеле Cat5 (нужен Cat5e/6), 2) Дуплексе (автосогласование сбоит), 3) Мелких файлах (recordsize не оптимизирован), 4) Включённом atime.

SSD кэш (L2ARC) не ускоряет передачу — почему?

L2ARC помогает только при повторном чтении одних и тех же данных. Для ускорения записи нужен SLOG (ZIL на SSD). Также L2ARC эффективен только при достаточном объёме ARC.

Разная скорость при копировании с разных клиентов

Проверьте: 1) Настройки сетевой карты клиента, 2) Антивирус (часто тормозит SMB), 3) Версию SMB (SMB1 медленный, нужен SMB2/3), 4) Размеры TCP Window на клиенте.

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

Проблема Решение Ожидаемый прирост
Мелкие файлы копируются медленно recordsize=128K, sync=disabled (осторожно!) До 5x
Большие файлы не выходят на гигабит recordsize=1M, atime=off, compression=lz4 20-40%
Скорость падает со временем Добавить SLOG SSD, настроить ARC Стабильная скорость
Высокая загрузка CPU при передаче Отключить шифрование, использовать lz4 вместо gzip Снижение CPU на 50%
Профилактика лучше лечения: Регулярно проверяйте состояние дисков (SMART), обновляйте TrueNAS до актуальной версии, ведите мониторинг производительности через Reporting в веб-интерфейсе.

Помни: оптимизация — это итеративный процесс. Начинай с базовых тестов (iperf3, fio), затем настраивай сеть, потом протоколы (SMB/NFS), и только потом лезь в глубины ZFS. В 80% случаев проблема решается настройкой SMB и проверкой сетевого оборудования.

Если после всех оптимизаций передача по сети всё ещё тормозит — возможно, аппаратные ограничения (медленные диски, слабый CPU для шифрования). В этом случае рассматривайте апгрейд железа или пересмотр архитектуры хранения данных.

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