nfsstat -c 명령

NFS 클라이언트는 전송 및 거부된 NFS 호출 수뿐 아니라 클라이언트 핸들의 수신 횟수(clgets), 다양한 종류의 호출 수 및 각각의 백분율 정보를 표시합니다.

다음은 -c 옵션을 사용하여 클라이언트에 대해 지정된 nfsstat 명령을 보여주는 예입니다.
# nfsstat -c

Client rpc:
Connection oriented
calls     badcalls  badxids  timeouts  newcreds badverfs  timers
0          0          0          0          0          0          0
nomem     cantconn interrupts
0          0          0
Connectionless
calls     badcalls retrans   badxids   timeouts newcreds  badverfs
6553       0          0          0          0          0          0
timers    nomem     cantsend
0          0          0


Client nfs:
calls      badcalls   clgets     cltoomany
6541       0          0          0
Version 2: (6541 calls)
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%
Version 3: (0 calls)
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)은 다음과 같습니다.

호출
NFS에 대해 수행된 총 RPC 호출 수입니다.
badcalls
RPC 계층에서 거부된 총 호출 수입니다.
retrans
서버의 응답을 기다리는 동안 시간종료로 인해 호출을 재전송해야 했던 횟수입니다. 이 매개변수는 무연결 전송을 통한 RPC에만 적용됩니다.
badxid
미결 호출에 해당하지 않는 서버의 응답이 수신된 횟수입니다. 서버가 응답하는 데 너무 오랜 시간이 걸림을 의미합니다.
timeouts
서버의 응답을 기다리는 동안 호출이 시간종료된 횟수입니다.
newcreds
인증 정보를 갱신한 횟수입니다.
badverfs
응답에 잘못된 검증자가 있어 호출에 실패한 횟수입니다.
timers
계산된 시간종료 값이 호출의 지정된 최소 시간종료 값보다 크거나 같은 횟수입니다.
nomem
메모리 할당 실패로 호출에 실패한 횟수입니다.
cantconn
서버와의 연결에 실패하여 호출에 실패한 횟수입니다.
interrupts
호출이 완료되기 전에 신호에 의해 인터럽트된 횟수입니다.
cantsend
클라이언트와의 연결에 실패하여 전송에 실패한 횟수입니다.

출력에는 또한 다양한 종류별 호출 수와 각각에 대한 백분율도 표시됩니다.

성능 모니터링을 위해 nfsstat -c 명령은 네트워크가 UDP 패킷을 삭제하는지 여부에 대한 정보를 제공합니다. 네트워크가 패킷을 처리할 수 없는 경우 패킷을 삭제할 수 있습니다. 삭제된 패킷은 네트워크 하드웨어나 소프트웨어의 응답 시간 또는 서버에서 과부하된 CPU로 인해 발생할 수 있습니다. 삭제된 패킷에 대한 교체 요청이 발행되므로 삭제된 패킷이 실제로 유실되는 것이 아닙니다.

RPC 섹션의 retrans 열에는 응답 대기 중 시간종료로 인해 요청이 재전송된 횟수가 표시됩니다. 이 상황은 삭제된 UDP 패킷과 관련이 있습니다. retrans 값이 항상 첫 번째 열에 있는 총 호출 수의 5%를 초과할 경우, 서버가 요청을 처리하는 데 문제가 있는 것입니다. 서버 머신에서 vmstatiostat 명령을 사용하여 로드를 확인하십시오.

badxid 값이 높다면 요청이 여러 NFS 서버에 도달하지만 서버 로드가 너무 많아 클라이언트의 RPC 호출이 시간종료되고 재전송될 때까지 응답을 전송하지 못한 것입니다. badxid 값은 전송된 요청에 대해 중복된 응답을 수신할 때마다 증분됩니다. RPC 요청은 모든 전송 주기에서 XID 값을 유지합니다. 과도한 재전송은 서버에 추가 로드를 부여하므로 응답 시간이 더욱 길어집니다. badxid 값과 시간종료 값이 총 호출 수의 5%를 초과할 경우 smitty chnfsmnt 명령을 사용하여 NFS 마운트 옵션의 timeo 매개변수를 늘리십시오. badxid 값이 0이지만, retrans 값 및 시간종료 값이 상당히 클 경우, mount 명령의 rsizewsize 옵션을 사용하여 NFS 버퍼 크기를 줄여보십시오.

재전송 횟수 및 시간종료 값이 동일한 값에 근접할 경우, 패킷이 삭제되고 있는 것입니다. 자세한 설명은 삭제된 패킷의 내용을 참조하십시오.

애플리케이션이나 사용자가 성능 문제를 겪고 있지만 nfsstat -c 명령 출력을 검토하면 시간종료나 재전송 횟수가 전혀 발생하지 않거나 극소수인 경우도 있습니다. 즉, 클라이언트가 요청하는 것과 같은 속도로 서버로부터 응답을 수신하는 경우입니다. 먼저 적절한 수의 biod 디먼이 클라이언트 머신에서 실행 중인지 확인하십시오. 애플리케이션이 원격 파일 잠금을 수행할 경우에도 이 사항을 관찰할 수 있습니다. NFS를 통해 제공된 파일에 원격 파일 잠금이 설정된 경우 클라이언트가 조작의 완전한 동기 모드로 전환되어 파일에 대한 모든 데이터 및 속성 캐싱이 해제됩니다. 그 결과로 성능은 매우 저하되지만 이는 정상 상태입니다. ipreport 출력에서 NLM 요청을 검토하여 잠금 패킷을 식별할 수 있습니다.