NFS без noac зависает Ubuntu (с Dolphin, Nautilus и в командной строке)

Я пытался настроить самодельный NAS-ящик, используя NFS на сервере Ubuntu 17.04, используя Kubuntu 17.04 в качестве клиента, но даже после обширной настройки и настройки я не могу заставить клиента перестать замораживать во время копирования к этой доле.

Эта настройка работает на частоте 5 ГГц a + n WiFi (она должна, для переносимости), что, по-видимому, снижает скорость передачи NFSv4 и NFSv3 TCP примерно до 2 мегабайт / с. Теперь я использую NFSv3 поверх UDP, который достигает приемлемой скорости около 25-30 мегабайт / с, но это выявило еще одну проблему на стороне клиента. Если у меня открыта папка, в которую копируется файл, вся ОС начинает заикаться, и файловый менеджер (в этом случае Дельфин) зависает с «Не реагировать». Мониторинг переноса в системе KDE также замерзает, но через KSysGuard я вижу, что передача все еще происходит из скорости загрузки. nfswatch и nfstrace также не сообщают о проблемах или потерянных пакетах. Сеть не загружена сильно, а скорости потерь малы, пинг на сервер равен & lt; 1 мс

Странно, что если я отключу кэширование атрибутов файлов с помощью опции mount noac, все будет в порядке и не произойдет зависаний. Это приводит к снижению производительности noac, хотя скорость передачи данных уменьшается до 10 Мбайт / с, а загрузка папок замедляется. Я пробовал все параметры синхронизации и асинхронности на обоих концах, lookupcache = none, actimeo = 0 и actimeo = 1, но все, кроме noac, не избавляется от замораживания. Я также изменил параметры rsize и wsize, но безуспешно, поэтому я оставил их для ясности.

Самое смешное, что при включенном кэшировании атрибутов он также зависает ls в командной строке, watch -n1 ls -la /path/to/nfs/dir сообщает обновление каждые 5-10 секунд вместо указанного 1-секундного интервала, ожидая в «мертвом» состоянии, как контролируется htop. Я также испытал аналогичное поведение с Nautilus в системе Ubuntu Budgie 17.10 с зависанием монитора переноса во время загрузки. Загрузки с сервера NFS не вводят замораживание. Я предполагаю, что это может быть проблемой с inotify? Как уже упоминалось, отставание происходит только тогда, когда открытая папка назначения переноса открыта в Dolphin, сменившись на любой подкаталог «размораживает» систему и Dolphin.

Вот мой /etc/exports на сервере:

# /etc/exports: the access control list for filesystems which may be exported # to NFS clients. See exports(5). # # Example for NFSv2 and NFSv3: # /srv/homes hostname1(rw,sync,no_subtree_check) hostname2(ro,sync,no_subtree_check) # # Example for NFSv4: # /srv/nfs4 gss/krb5i(rw,sync,fsid=0,crossmnt,no_subtree_check) # /srv/nfs4/homes gss/krb5i(rw,sync,no_subtree_check) # /export/nfsdir client.local(rw,no_subtree_check,no_root_squash,mountpoint,async)

И на клиенте я использую autofs, хотя та же проблема возникает и при непосредственном подключении с помощью команды mount. Вот конфигурация autofs:

nfsmountdir -fstype=nfs,vers=3,udp,rw,soft,noatime,nodiratime,noacl,nolock,async server.local:/export/nfsdir

Разрешения верны, я могу читать и писать в общий ресурс. Я пробовал это со всеми перечисленными выше вариантами монтирования, но их присутствие не имеет никакого влияния. Добавление noac кажется единственным вариантом, но я ненавижу, что у меня есть ограничение производительности, тем более что я буду передавать большие файлы на общий ресурс. Итак, вопрос в том, что я сделал что-то не так, или я просто обнаружил ошибку? Было бы хорошо, если бы кто-то мог объяснить это поведение и как обойти его, потому что на данный момент у меня нет идей.

Спасибо за ваше время.

Ps. это мой первый пост, не стесняйтесь давать отзывы, если есть что-то, что я должен изменить.

0
задан 2 December 2017 в 18:38

0 ответов

Другие вопросы по тегам:

Похожие вопросы: