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

Как отслеживать загрузку NFS из пользовательского пространства?

Приносим извинения, если я не использую правильный жаргон (хотя я давний пользователь Linux, я не администратор) или если это FAQ (хотя поиск SE получил много результатов, я не нашел ничего похожего на этот вопрос):

Я являюсь пользователем научного кластера (с заданиями, управляемыми PBS / Torque, на RHEL5, FWIW). Я собираюсь начать свою первую действительно большую работу, поэтому я задал администратору несколько вопросов по настройке, чтобы избежать глупых ошибок. Я был в основном прав, но он добавил совет «убедитесь, что вы не забиваете дисковый сервер слишком большим количеством операций ввода-вывода», с последующим «используйте top [чтобы] увидеть, не сходит ли nfs с ума».

Как это сделать? Это кластер, поэтому многое происходит «за кулисами», что для меня прозрачно. Плюс у меня практически нет привилегий. Я также ограничен CLI через SSH, но это меньшая из моих проблем. С другой стороны, мне кажется, что я могу выполнить оболочку на любом из вычислительных узлов, в том числе с подключенными дисками.

Итак, мне интересно, как лучше всего отслеживать NFS из пользовательского пространства? Я знаю немного о top и NFS, поэтому я знаю, что могу

top -p$(pgrep nfsd -d ',')

чтобы получить список процессов NFS (нет?). Но что мне действительно хотелось бы знать - опять же, как пользователь (у меня нет ни sudo ни root) на RHEL5 (да, мы все еще работаем над этим) -

  1. Одна или несколько агрегированных статистических данных по загрузке NFS по всем процессам NFS. Это то, что я могу получить от top или другой инструмент, без очистки вывода и выполнения моих собственных расчетов? И должен ли я контролировать другие процессы, кроме nfsd?
  2. Консультации по количественной оценке того, что NFS сходит с ума. Если я могу получить одну / несколько совокупных статистических данных, я, по-видимому, могу получить базовый уровень до начала работы, но это все равно не говорит мне, «насколько высокий слишком высокий».

Примечание: top похоже, не подходит для этой задачи, но, по крайней мере, мне он доступен. Список инструментов, которые не доступны включают

  1. nfsstat
  2. iostat
  3. iotop

Смотреть на верхний вывод совершенно неправильно. Это про IOPS. Чтобы получить представление о статистике NFS, используйте nfsstat:

Server rpc stats:
calls      badcalls   badauth    badclnt    xdrcall
40833255   0          0          0          0       

Server nfs v3:
null         getattr      setattr      lookup       access       readlink     
0         0% 1411374   3% 107       0% 43169     0% 747514    1% 790       0% 
read         write        create       mkdir        symlink      mknod        
38138706 93% 0         0% 0         0% 0         0% 0         0% 0         0% 
remove       rmdir        rename       link         readdir      readdirplus  
0         0% 0         0% 0         0% 0         0% 0         0% 491559    1% 
fsstat       fsinfo       pathconf     commit       
6         0% 12        0% 6         0% 0         0% 

Если у вас есть программа мониторинга (например, Zabbix), вы можете добавить UserParameter, чтобы следить за ними:

# NFS stats
UserParameter=nfs.v3.server[*],nfsstat -s -l | awk 'BEGIN {FS=": *"}/v3 server.*$1:/ {print $$2}'

и сделаем красивые графики:

Насколько высока слишком высокая? Это полностью зависит от вашей загруженности:

Вам нужно следить за файловой системой и диском задержка чтобы узнать, не перегружаете ли вы диски.