NFS собирает статистическую информацию по всем выполняемым операциям, а также информацию об ошибках и о производительности. Ниже рассмотрены команды обнаружения сетевых неполадок и просмотра статистической информации NFS.
Команда nfsstat выдает статистическую информацию о NFS и интерфейсе RPC ядра для клиентов и серверов. Кроме того, с помощью этой команды можно сбросить соответствующие счетчики (nfsstat -z). Статистика RPC (опция -r) содержит наиболее важную информацию для анализа производительности. Статистика NFS позволяет оценить интенсивность работы приложений системы с NFS.
Команда nfsstat выдает следующую статистическую информацию о вызовах RPC:
Начиная с AIX версии 4.2.1 поддерживается вывод информации для NFS версии 3. Статистика NFS в выводе команды nfsstat подразделяется на две части: для версии 2 и для версии 3. Статистика RPC разбита на разделы С установлением соединения (TCP) и Без установления соединения (UDP).
В разделе сервера NFS показано как число полученных (calls) и отклоненных (badcalls) вызовов NFS в процессе идентификации, так и счетчики числа и относительного количества сделанных вызовов.
В следующем примере показан раздел Сервер из вывода команды nfsstat с опцией -s:
# nfsstat -s Сервер - RPC: С установлением соединения: callsbadcallsnullrecvbadlenxdrcalldupchecksdupreqs 15835 0 0 0 0 772 0 Без установления соединения: callsbadcallsnullrecvbadlenxdrcalldupchecksdupreqs 0 0 0 0 0 0 0 Сервер - NFS: calls badcalls public_v2 public_v3 15835 0 0 0 Версия 2: (0 вызовов) null getattr setattr root lookup readlink read 0 0% 0 0% 0 0% 0 0% 0 0% 0 0% 0 0% wrcache write create remove rename link symlink 0 0% 0 0% 0 0% 0 0% 0 0% 0 0% 0 0% mkdir rmdir readdir statfs 0 0% 0 0% 0 0% 0 0% Версия 3: (15835 вызовов) null getattr setattr lookup access readlink read 7 0% 3033 19% 55 0% 1008 6% 1542 9% 20 0% 9000 56% write create mkdir symlink mknod remove rmdir 175 1% 185 1% 0 0% 0 0% 0 0% 120 0% 0 0% rename link readdir readdir+ fsstat fsinfo pathconf 87 0% 0 0% 1 0% 150 0% 348 2% 7 0% 0 0% commit 97 0%
Значения полей в разделе Сервер - RPC (-s):
Вывод содержит также количества и доли в процентах вызовов различных типов.
Проверка повторных вызовов выполняется для неидемпотентных операций (два вызова которых дают различные результаты). Классический пример - команда rm (удалить). Первая команда rm будет выполнена успешно, но, если ответ будет потерян, клиент может повторить вызов. Этот вызов будет обнаружен в кэше повторных запросов, поэтому вместо повторной попытки удалить файл будет сразу возвращен ответ об успешном выполнении.
Информация о доле операций различных типов (такие как getattr(), read(), write() и readdir()) позволяет определить приоритеты при оптимизации. Например, если велика доля вызовов getattr(), то рекомендуется увеличить кэш атрибутов. При большом числе вызовов write() важна производительность диска и LVM. Обработка вызовов read() может быть ускорена путем увеличения объема оперативной памяти, применяемой для кэширования файлов.
В разделе Клиент NFS показано число отправленных и отклоненных вызовов, число операций получения описателя клиента (clgets), а также количества и доли в процентах вызовов различных типов.
В следующем примере показан раздел Клиент из вывода команды nfsstat с опцией -c:
# nfsstat -c Клиент - RPC: С установлением соединения: calls badcalls badxids timeouts newcreds badverfs timers 0 0 0 0 0 0 0 nomem cantconn interrupts 0 0 0 Без установления соединения: calls badcalls retrans badxids timeouts newcreds badverfs 6553 0 0 0 0 0 0 timers nomem cantsend 0 0 0 Клиент - NFS: calls badcalls clgets cltoomany 6541 0 0 0 Версия 2: (6541 вызовов) null getattr setattr root lookup readlink read 0 0% 590 9% 414 6% 0 0% 2308 35% 0 0% 0 0% wrcache write create remove rename link symlink 0 0% 2482 37% 276 4% 277 4% 147 2% 0 0% 0 0% mkdir rmdir readdir statfs 6 0% 6 0% 30 0% 5 0% Версия 3: (0 вызовов) null getattr setattr lookup access readlink read 0 0% 0 0% 0 0% 0 0% 0 0% 0 0% 0 0% write create mkdir symlink mknod remove rmdir 0 0% 0 0% 0 0% 0 0% 0 0% 0 0% 0 0% rename link readdir readdir+ fsstat fsinfo pathconf 0 0% 0 0% 0 0% 0 0% 0 0% 0 0% 0 0% commit 0 0%
Значения полей в разделе Клиент - RPC (-c):
Вывод содержит также количества и доли в процентах вызовов различных типов.
Команда nfsstat -c выдает также информацию о потерянных пакетах UDP, что позволяет отслеживать производительность. Сеть может отбросить пакет, если она не поддерживает его. Потеря пакетов может быть также вызвана слишком большим временем ответа программного и аппаратного обеспечения сети или перегруженностью процессора сервера. Запросы из потерянных пакетов не пропадают, а передаются повторно.
В столбце retrans раздела RPC показано число повторных передач запросов из-за тайм-аута при ожидании ответа. Этот показатель связан с числом потерянных пакетов UDP. Если значение retrans регулярно превышает пять процентов от общего числа вызовов (указанного в первом столбце), сервер или сеть не справляются с нагрузкой. Для выяснения степени загруженности сервера введите на нем команды vmstat, netpmon и iostat.
Высокое значение badxid указывает на то, что запросы достигают серверов NFS, но серверы слишком загружены и не успевают отправлять ответы до тайм-аута, вследствие чего запросы передаются повторно. Значение badxid увеличивается при каждом получении повторного ответа на переданный запрос (XID запроса RPC остается неизменным на всех этапах обработки). Повторные передачи ответа повышают нагрузку на сервер, что еще больше увеличивает время ответа. Если значения badxid и timeouts превышают пять процентов от общего числа запросов, увеличьте значение параметра timeo в опциях монтирования NFS с помощью команды smitty chnfsmnt. Если badxid равно 0, а значения retrans и timeouts велики, попробуйте уменьшить размер буфера NFS (опции rsize и wsize команды mount).
На производительность NFS и соответствующих демонов негативно влияет перегруженность процессора сервера. В этом случае рекомендуется модернизировать сервер или перенести файлы приложений на локальный диск. Если перегружена система ввода-вывода сервера, рекомендуется реорганизовать его файловые системы или перенести файлы на диск клиента.
Если число повторных передач близко к числу тайм-аутов, то это означает частую потерю пакетов. Пакеты редко теряются клиентом. Обычно пакеты отбрасываются или сетью, или сервером. Сервер может отбрасывать пакеты при переполнении очереди передачи интерфейса или буфера сокета UDP (nfs_socketsize). Если на сервере не наблюдается переполнений буфера сокета и переполнений очереди интерфейса, то, скорее всего, пакеты отбрасываются сетью. Это указывает на неполадки в физических сетях и сетевых устройствах: маршрутизаторах, мостах и концентраторах. Для устранения подобных неполадок может применяться сетевой перехват. Более подробная информация приведена в разделе Отброшенные пакеты.
В некоторых случаях производительность NFS кажется низкой, в то время как вывод команды nfsstat -c указывает, что число тайм-аутов и повторных передач запроса невелико. Это означает, что клиент получает ответ от сервера сразу после отправки запроса. В этом случае следует сначала выяснить, сколько экземпляров демона biod запущено на клиенте. Кроме того, такая ситуация может наблюдаться при удаленном блокировании файлов. При удаленном блокировании файлов, доступных через NFS, клиент переходит в полностью синхронный режим работы и полностью прекращает кэширование данных и атрибутов этих файлов. Это обычное поведение клиента в таких случаях, однако, к сожалению, оно приводит к значительному снижению производительности. Блокирующие пакеты указаны в выводе команды ipreport как запросы NLM.
Начиная с AIX версии 4.2.1 команда nfsstat -m выдает имя и адрес сервера, флаги монтирования, текущий размер блоков чтения и записи, число повторных передач, а также тайм-ауты для динамической повторной передачи для каждой точки монтирования клиента:
# nfsstat -m /SAVE from /SAVE:itsorus.austin.ibm.com Флаги: vers=2,proto=udp,auth=unix,soft,intr,dynamic,rsize=8192,wsize=8192,retrans=5 Поиск: srtt=27 (67 мс), dev=17 (85 мс), cur=11 (220 мс) Чтение: srtt=16 (40 мс), dev=7 (35 мс), cur=5 (100 мс) Запись: srtt=42 (105 мс), dev=14 (70 мс), cur=12 (240 мс) Все: srtt=27 (67ms), dev=17 (85ms), cur=11 (220ms)
Числа в скобках, показанные в этом примере, представляют собой фактические интервалы в миллисекундах. Прочие числа - это значения времени в условных единицах, применяемые ядром операционной системы. Их можно игнорировать. Значения времени ответа показаны для операций поиска, чтения, записи, а также для сочетания всех этих операций (Всего). Прочие сокращения в этом выводе означают следующее:
См. раздел Команда netpmon.
Команда nfso служит для настройки атрибутов NFS. Она позволяет просмотреть и изменить текущие параметры сетевой поддержки ядра. Ее можно выполнять в любой запущенной системе.
Примечание: Команда nfso не проверяет границы диапазонов. При неправильном использовании эта команда может нарушить работу системы.
Для просмотра параметров команды nfso и их значений введите команду nfso -a:
# nfso -a portcheck= 0 udpchecksum= 1 nfs_socketsize= 60000 nfs_tcp_socketsize= 60000 nfs_setattr_error= 0 nfs_gather_threshold= 4096 nfs_repeat_messages= 0 nfs_udp_duplicate_cache_size= 0 nfs_tcp_duplicate_cache_size= 0 nfs_server_base_priority= 0 nfs_dynamic_retrans= 1 nfs_iopace_pages= 0 nfs_max_connections= 0 nfs_max_threads= 128 nfs_use_reserved_ports= 0 nfs_device_specific_bufs= 1 nfs_server_clread= 1 nfs_rfc1323= 0 nfs_max_write_size= 0 nfs_max_read_size= 0 nfs_allow_all_signals= 0
Описание этих атрибутов приведено в разделе Настраиваемые параметры сетевой поддержки. Большинство атрибутов NFS могут быть изменены в любой момент. Изменение атрибутов загрузки, таких как nfs_socketsize, требует остановки и перезапуска NFS.
Для просмотра или изменения одного параметра введите команду nfso -o:
# nfso -o portcheck portcheck= 0 # nfso -o portcheck=1
Значение параметра по умолчанию можно восстановить с помощью опции -d:
# nfso -d portcheck # nfso -o portcheck portcheck= 0
Ниже приведен обзор файлов, команд, демонов и процедур, относящихся к NFS. Более подробная информация приведена в книгах Руководство по управлению системой AIX 5L версии 5.1: Сети и средства связи и Справочник команд AIX 5L Version 5.1.
Ниже приведен список файлов, в которых хранится информация о конфигурации NFS:
Ниже приведен список команд NFS:
Ниже приведен список демонов NFS:
Ниже приведен список сетевых демонов и утилит:
Ниже приведен список демонов и утилит для защищенной работы в сети:
Ниже приведено название файла конфигурации бездисковых клиентов:
Ниже приведен список функций NFS: