느린 NFS, nfsstat -c : authrefrsh (일명 newcreds?) 란 무엇입니까? 남자 nfsstat 는 그 주제에 대해

(net-fs / nfs-utils-1.2.3-r1, 2.6.38.5-zen + 젠투)

인터넷 검색은 완전한 막 다른 골목 인 것 같습니다. 남자 nfsstat 는 그 주제에 대해 아무 것도 말하지 않습니다. 내가 얻을 수있는 가장 가까운 것은 아마도 이전에 ” 새로운 신용 ” 이 무엇인지 알아내는 것이었다 .

newcreds 인증 정보를 갱신해야하는 횟수입니다.

내 문제는 OpenVPN보다 하위 수준의 NFS 성능을보고 있다고 생각 하며 모든 nfsstat Google 결과와 크게 다른 점을 즉시 볼 수있는 유일한 것은 “통화”필드가 정확히 “authrefrsh”와 동일하므로 매우 높습니다 . 모든 검색 결과 출력에는 항상 authrefrsh가 0 또는 매우 낮은 숫자가있었습니다. 다른 측면의 디버깅으로 넘어 가기 전에 이것이 무엇을 의미하는지 알아낼 수 있습니다.

감시 작업은 NFS 공유 포티지에서 패키지가 등장하고 있습니다. emerge는 작동하는 동안 큰 나무를 가로 지르지 만 이전 경험에 따르면 내가보고있는 성능이 비정상적이라고 말합니다.

$ watch -n 1 nfsstat -c

Every 1,0s: nfsstat -c                                Sat May 21 23:04:55 2011

Client rpc stats:
calls      retrans    authrefrsh
308565     2211       308565

Client nfs v3:
null         getattr      setattr      lookup       access       readlink
0         0% 172372   55% 17        0% 30485     9% 36057    11% 26831     8%
read         write        create       mkdir        symlink      mknod
25879     8% 107       0% 21        0% 0         0% 0         0% 0         0%
remove       rmdir        rename       link         readdir      readdirplus
16        0% 0         0% 11        0% 0         0% 0         0% 16668     5%
fsstat       fsinfo       pathconf     commit
3         0% 50        0% 25        0% 2         0%

나는 authrefrsh가 무엇인지 정확히 알 수 없으며 (이 철자가 의도적으로 btw입니까?) 왜 내 경우에는 이렇게 증가합니까?



답변

의견 의 Red Hat 기사 에서 솔루션은 말합니다

이것은 예상되는 동작입니다.

그다지 도움이되지는 않지만 발생하는 이유도 지적합니다.

nfs 인증이 수행되는 위치로 이동하는 sunrpc 패키지에서 커밋 a17c2153d2e271b0cbacae9bed83b0eaa41db7e1을 참조합니다. 전체 커밋을 복사 / 붙여 넣지는 않지만 대부분이 줄을 변경합니다.

-struct rpc_cred *cred = task->tk_msg.rpc_cred;
+struct rpc_cred *cred = task->tk_rqstp->rq_cred;

제한된 이해는이 줄이 call_refresh ()가 발생하는 위치로 이동한다는 것입니다 (나중이 아니라 더 빠름). 이는 인증이 항상 사용됨에 따라 대부분의 모든 nfs 요청으로 인해 authrefrsh가 증가 함을 의미합니다.


답변

나는 클라이언트 측에서 authrefrsh == 호출과 같은 것을 보았습니다 (vpn을 사용하지 않음). 통화 수가 증가한 다음 속도가 느려지고 authrefrsh의 수가 따라 오는 것처럼 보입니다.

클라이언트 RPC 통계 :

calls      retrans    authrefrsh
261697     0          261697

나는 매우 높은 iowait도 본다.

dd if=/dev/zero of=/mnt/omoikane/testfile bs=16k count=2048

(iostat에서 🙂

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
          4.04    0.00    4.04   91.92    0.00    0.00

wireshark에서 비정상적인 것을 볼 수 없습니다-나는 nfs3와 tcp를 사용하고 있습니다.


답변

이 링크에서 내가 이해 한 바에 따르면 authrefresh = 호출은 문제를 나타내지 않습니다.

https://bugzilla.redhat.com/show_bug.cgi?id=785931