Как установить приоритет ввода / вывода для клиентских процессов NFS?
Конфигурация: сервер Linux и NAS Box (Netgear), выступающий в качестве сервера NFS.
Для одного процесса на сервере linux легко использовать всю пропускную способность ввода / вывода, просто скопировав файл из общего ресурса nfs в общий ресурс nfs. Канал ввода / вывода заблокирован, и все остальные процессы на сервере почти остановятся, ожидая ввода / вывода. Нагрузка возрастает до 10-20 (четыре ядра), появляется все больше и больше процессов pdflush... пока кто-то не остановит копию файла.
Как я могу ограничить пропускную способность ввода / вывода, которую использует процесс cp? nice
не поможет конечно, но и ionice -c3
не имеет никакого эффекта Влияет ли ionice на nfs mount? Есть ли что-то вроде nfsnice?
2 ответа
Каковы ваши значения "rsize" и "wsize"?
Обычно современные Linux-клиенты NFS согласовывают максимальные значения с сервером, но иногда они могут оказаться далеко от базы. Например, у нас было rsize=1m,wsize=1m
в /proc/mounts, не зная, что NAS не может поддерживать более 32768. Та же медлительность, тот же эффект скачка загрузки, как вы описали.
Уменьшение обоих значений до 32 КБ немедленно решило проблему медлительности и растущей нагрузки, и настольный компьютер оставался полностью отзывчивым даже при копировании гигабайт на NFS. И у нас есть наши домашние каталоги по NFS...
Возможно, реализация NFS-сервера на вашем NAS-сервере немного "хвастается", предлагая больший размер, чем он может пережевать...?
ура
Похоже, что Netgear NAS не успевает и вызывает заблокированные операции ввода-вывода. Как выглядит NAS? Сколько дисков? Как выглядит конфигурация RAID? Похоже, это проблема на стороне сервера.