У нас был сервер NFS на работе, которая работала с небольшой задержкой. Однако, поскольку больше точек монтирования становилось созданным в нескольких клиентах (обслуживаемый тем же сервером), мы заметили производительность, резко останавливающуюся с большим количеством пользователей, не бывших способных смонтироваться или cd
к смонтированному NFS. Моим вопросом является банка, несколько точек NFS на нескольких клиентских машинах (даже если неактивный) влияют на производительность? Если да, как это влияло бы?
Да, большее количество клиентов может повлиять на ввод-вывод. NFS имеет ограниченное количество NFS IOD, ограниченное RPCNFSDCOUNT = (расположение зависит от дистрибутива). Однако счетчик NFSD имеет точку уменьшения отдачи, в зависимости от того, сколько клиентов монтируются с асинхронной или синхронизацией и что они делают. На вашем сервере NFS вы можете увидеть их блокировку с помощью ps auxw | grep D , чтобы найти NFSD в непрерывном режиме сна. Когда это происходит, вы также можете увидеть увеличение очереди выполнения. Вы также увидите заблокированные процессы (второй столбец vmwstat). Вы упомянули, что они простаивают, но уверены ли вы в этом, просматривая статистику сети и rpcinfo?
Вы можете попробовать увеличить RPCNFSDCOUNT и перезапустить nfsd, чтобы увидеть, уменьшится ли эффект.
Неактивные точки монтирования клиента не должны влиять на производительность вашего сервера NFS, поскольку они не вызывают операций ввода-вывода. Они используют очень небольшой объем памяти для хранения состояния монтирования.
Вы действительно должны убедиться, что эти клиенты находятся в состоянии ожидания. Нередко бывает, что на клиентском компьютере есть какой-то искатель (mlocate / slocate, индексаторы рабочего стола и т. Д.), Недостаточно умен, чтобы избежать точки монтирования NFS.
Также некоторые системы уведомлений об изменении файлов на клиентах будут автоматически опрашивать ваш сервер NFS , потому что для этой цели NFS не предоставляет механизма обратного вызова.
Что более забавно, полное сканирование может выполняться с каждой попытки завершения в оболочке, если точка монтирования появится в клиентской переменной PATH.
И так далее.
NFS в основном прозрачна для клиентов, поэтому я видел, как люди подключались к монтированию NFS - даже не подозревая об этом - бесчисленное множество.
Если ваши клиенты - Unix, попробуйте watch -n2 nfsstat -c
, чтобы проверить отправленные ими операции ввода-вывода NFS.