Хорошая конфигурация NFS для домашней сети (проблемы с производительностью NFS)

3073
dmcer

У меня есть небольшая локальная сеть, в которой есть пара блоков Linux (Ubuntu 9.10) с общими папками NFS. Коробки объединены в сеть с маршрутизатором Netgear потребительского уровня (модель WGR614V9) и используют проводные соединения.

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

Поиграв с конфигурацией NFS, я смог заставить все работать достаточно хорошо. Конфигурация, на которой я остановился для системы, экспортирующей общий ресурс, была следующей:

# /etc/exports On the machine exporting the NFS share: /exprt/dir client.ip (rw,async,no_root_squash,no_subtree_check) 

Для клиента NFS у меня есть

# /etc/fstab server.ip:/exprt/dir on /imprt/dir type nfs (rw,noatime,rsize=32768,wsize=32768,timeo=14,intr) 

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

Я подумал, что стоит спросить, какие конфигурации NFS могут использовать другие люди в подобных сетевых настройках, что приводит к достаточно хорошей производительности. Я знаю, что NFS может быть очень чувствительным к таким вещам, как выбор ОС и точная конфигурация сети. Но я подозреваю, что мои настройки довольно распространены среди других пользователей с небольшими локальными сетями, поэтому было бы полезно узнать, какая конфигурация лучше всего подходит для них.

3

1 ответ на вопрос

0
user23307

NFS должен легко превзойти SSHFS. Можете ли вы показать некоторые конкретные цифры?

если вы запускаете на своем сервере ..

dd if=/dev/zero of=test.a bs=1M count=100 dd if=/dev/zero of=test.b bs=1M count=100 

тогда вы можете сделать

dd if=/imprt/dir/test.a of=/dev/null dd if=/path/to/sshfs/mount/dir/test.b of=/dev/null 

и опубликовать вывод?

Кроме того, вы можете экспортировать общие ресурсы в / export и использовать autofs с auto.net на клиентах. что заставляет все машины в локальной сети использовать одинаковую структуру пути / net / $ hostname / export / foo.

Я просто смотрел на производительность scp против NFS, а не SSHFS против NFS. Но, спасибо за указатель на SSHFS. SSHFS выглядит полезным для удаленного монтажа коробок. dmcer 14 лет назад 0
о, плохо ... производительность sshfs должна совпадать с тем, что вы видите с scp в любом случае :-) user23307 14 лет назад 0
Интересно, что с текущей конфигурацией NFS примерно равна SSHFS. NFS: dd if = NFSmnt / test.a из = / dev / null 104857600 байт (105 МБ) скопировано, 8,95725 с, 11,7 МБ / с SSFS: dd if = SSHFSmnt / test.b из = / dev / null 104857600 байт ( 105 МБ), скопировано, 9,14158 с, 11,5 МБ / с dmcer 14 лет назад 0
Действительно интересно. Можете ли вы придумать повторяемый тест, который воспроизводит проблему, которую вы впервые описали? user23307 14 лет назад 0
Я подозреваю, что нет, так как scp примерно такой же быстрый, как SSHFS (~ 9 с). Но разве NFS не должна быть быстрее SSHFS, так как она не должна выполнять дополнительную работу по шифрованию данных, передаваемых по сети? dmcer 14 лет назад 0
в числах, которые вы показали, NFS был быстрее, хотя это было всего на 0,2 секунды. Скорости, которые вы получаете, указывают на то, что вы максимизируете 100-мегабитную ссылку, так что ваша бутылочка - именно это, а не NFS или SSH. user23307 14 лет назад 2
Я обнаружил, что настройка NFS предпочитает много маленьких файлов или несколько больших файлов с отключенной буферизацией. Попытки обоих сразу породили много разногласий. Я также пошел к связанным соединениям Gig-E и имел много шпинделей на моем сервере NFS. memnoch_proxy 14 лет назад 0