Назад | Перейти на главную страницу

Медленное удаление и копирование файлов в папке NFS

У меня есть сервер, на котором размещены изображения и разрешен доступ к одному каталогу для одного клиента через NFS.
Каталог содержит около 70К изображений и имеет размер 12 ГБ.

Когда я выполняю такие команды, как cp или rm на сервере, на котором размещен каталог NFS, производительность великолепна, но при выполнении cp или rm от клиента в каталогах NFS команды иногда работают очень медленно там, где real time медленно и user и sys времена быстрые:

real    1m33.409s
user    0m0.000s
sys     0m0.000s

Мои предположения:

  1. Каталог каким-то образом заблокирован, что вызывает долгое ожидание
  2. Связь между двумя серверами как-то ненадежна

Вот дамп с клиентской nfsstat -c

Client rpc stats:
calls      retrans    authrefrsh
3018431    1          3018571

Вы должны попробовать noatime опция при монтировании удаленной файловой системы в клиенте.

Из man 8 mount

noatime  -  Do not update inode access times on this 
filesystem (e.g., for faster access on the news  spool
to speed up news servers).

В моем случае это значительно улучшило производительность записи.

Конфигурация:

Попробуйте экспортировать, используя асинхронный режим вместо синхронизации. Таким образом, вы не будете ждать подтверждения каждой выданной команды (подумайте, какое влияние это может оказать на целостность данных в вашей ситуации).

Сеть:

  1. Убедитесь, что оба канала работают в дуплексном режиме и что кадры большого размера включены во всей сети, если это возможно. Убедитесь, что все устройства и переключатели имеют одинаковые настройки, иначе у вас возникнут проблемы с фрагментацией.
  2. Проверьте фрагментацию UDP с помощью Wireshark или другого инструмента.

Источники

  1. http://www.tldp.org/HOWTO/NFS-HOWTO/performance.html
  2. http://lists.samba.org/archive/linux/2006-October/016332.html
  3. https://wiki.archlinux.org/index.php/NFS_Troubleshooting