Page 1 of 1

Тормоза на NFS

Posted: 15 Jan 2015 14:27
by crutch
Доброго времени суток! Необходим совет/информация...

Есть NAS 9.2.0.1 - Shigawire (revision 972) на HP MicroServer N40L (4Gb ECC, raidz1, 1Gb LAN). Скорость сети согласно iperf 55-70 MBs (дешманские провода cat5, чахлый роутер). SMB/CIFS на запись 40-60 MBs, чтение чуть похуже.

Есть плеер Pioneer BPD-150 с пролеченной прошивкой (теперь читает DNLA/NFS). Раньше на вышеназванном железе стоял WHS 2011 (только soft raid5) c haneWIN NFS server. Плеер воспроизводил по сети любые образы, даже самые тяжелые. Всё бы было ничего, только захотелось бесплатного NAS на флешке, чтобы SATA порт освободить. И вот тут началась засада - плеер тормозит, NFS клиент на ноутбуке показывает скорость чтения 8-9 MBs, что, в принципе, достаточно для BD3D, но лаги и звук пропадает. DLNA неудобен, потому что плеер отображает всякий мусор из папок BDMV.

Воткнул вместо сервера ноут с haneWIN NFS server - всё нормально, значит, дело не в сетке. Самба отдает файлы с приличной скоростью.
NFS v4 пробовал включать - не то. С MTU не поиграться - роутер староват. Настройку "ifconfig bge0 media autoselect mediaopt flowcontrol" делал, тоже мимо. А дальше не хватило знаний/статей в интернетах.

И отсюда вопрос - куда копать?
Поможет ли апгрейд на старшую версию Nas4Free? Или сделать софтовый raid5? Или роковая несовместимость с гигабитной сеткой?
Настроек NFS сервера в GUI очень мало; как я понимаю, параметры соединения в основном настраиваются в клиенте, до которого не добраться. Или всё-таки можно как-то подкрутить NFS сервер?

Re: Тормоза на NFS

Posted: 16 Jan 2015 19:24
by MikeMac
Для тех, кто будет читать позже, процитирую ваш итоговый коммент

"Кажется, я нашел, в чем дело.

http://forum.ixbt.com/topic.cgi?id=60:3797-52#1905

"Оказалось, пионер не просто работает с NFS по UDP, а с использованием SOCK_DGRAM - в этом случае NFS (по крайней мере тот, который во freebsd) по умолчанию использует блоки в 16384.

Для корректировки размера блока во фри в файле nfsproto.h необходимо поправить конструкцию вида #define NFS_MAXDGRAMDATA 16384 на значение в 8192 и пересобрать модули. После этого кино идёт плавно и практически без фризов."


Это подтверждается настройками haneWIN - поиграл с максимальным размером пакета: 8192 - всё в порядке, 16384 и 32768 - знакомые тормоза. В комментариях к прошивке указано также "Настройки NFS клиента при подключении к серверу -onolock,rsize=8192,wsize=1024,proto=udp,async"
"

Re: Тормоза на NFS

Posted: 17 Jan 2015 11:27
by crutch
Не стоило, право) Ещё буду пробовать чего-то добиться с помощью Finch, тогда и распишу, вышло или не вышло.

Re: Тормоза на NFS

Posted: 27 Jan 2015 12:56
by crutch
Опишу на всякий случай как я подсоединил Pioneer BDP-150 к NAS4Free.

После обновления прошивки плеера решил поставить finch:
1. отключил NFS в WebGUI;
2. Установил finch;
3. Пробросил папки;
4. Настроил в finch сервер nfs (дописал нужные строки в rc.conf, etc\exports) запустил:
rpcbind -> nfsd -u -t -n 4 -> mountd -r
По дефолту всё работало, плеер увидел новую NFS share.
5. Далее исправил в исходниках \sys\nfs\nfsproto.h (пути здесь и далее из chroot, естественно):
NFS_MAXDGRAMDATA 16384 на значение 8192
NFS_MAXMDATA 16384 на значение 8192
6. Создал свой конфиг MEGA на основе \sys\amd64\conf\GENERIC, ничего особенно не правил, отключил debug и отключил sound и прочее;
7. Пересобрал ядро: config MEGA -> make depend -> make -j3 -> make install;
8. Остановил finch, перезагрузил NAS4Free;
9. Зашел в finch chroot, запустил NFS server заново: rpcbind -> nfsd -u -t -n 4 -> mountd -r
10. Плеер видит NFS share, но всё равно воспроизводит с тормозами и без звука(((
11. Плеер видит SMB share, на которой включен guest access, но то же самое.

Возможно, я что-то сделал не так, потому что читать вообще что-либо про UNIX начал пару недель назад.
Осмелюсь предположить некую кривость драйверов под FreeBSD для HP NC107i (Broadcom NetXtreme).

В общем, через некоторое время подключил плеер через haneWIN сервер 1.2.16 (на 1.1.x не работает) на локальной машине.
Подключаюсь к NAS4Free SMB share строкой в exports: "\\192.168.1.100\Storage\Video -alldirs -readonly -name:Video"
и плеер таки видит все файлы по NFS и воспроизводит BD3D с нормальной скоростью.

Немного из серии "почесать левое ухо через правое плечо", но работает, только локальную машину приходится держать включенной.

Re: Тормоза на NFS

Posted: 10 Mar 2015 10:56
by crutch
Вы таки будете смеяться, но я обнаружил, что дело было в непрожатом разъёме пач-корда (отмечен X).
Сеть заводилась на 1G, но одна пара "фонила" и потери пакетов в UDP приводили к фризам. Обходной путь работал потому что haneWIN сервер на "компьютер Win7" лез на SMB шару NAS по TCP (с потерями, но всё же гигабит), а потом уже отдавал плееру 100 мегабит через свитч по UDP "в хорошем качестве".
schemaq.png
Проверяйте ваши провода!