Linux NFS 클라이언트 쪽 RPC 자격 증명 새로 고침이 반복되는 원인은 무엇입니까?


10

을 사용하면 ~ 1000 파일을 포함하는 디렉토리 와 nfsstat -c같은 작업 ls및 작업에 대해 NFS 클라이언트 PC에서 높은 "authrefrsh"(일부 시스템에서는 "newcred")가 계산됩니다 find. 이는 성능이 매우 낮습니다 (20 분 이상 디렉토리 목록). 캐시 된 NFS 작업에는이 동작이 나타나지 않습니다 (authrefrsh 또는 속도 저하).

authrefrsh = nfsstat를 확인할 때마다 호출합니다.

$ nfsstat -c

Client rpc stats:
calls      retrans    authrefrsh
280462     0          280462

Client nfs v3:
null         getattr      setattr      lookup       access       readlink
0         0% 126990   45% 0         0% 10062     3% 58592    20% 0         0%
read         write        create       mkdir        symlink      mknod
25030     8% 0         0% 65        0% 0         0% 2         0% 0         0%
remove       rmdir        rename       link         readdir      readdirplus
0         0% 0         0% 0         0% 0         0% 0         0% 59654    21%
fsstat       fsinfo       pathconf     commit
0         0% 20        0% 10        0% 0         0%

연결 세부 사항 :

$ mount.nfs -v nfshost:/share/dir /somedir
mount.nfs: timeout set for Tue Feb 21 18:12:18 2012
mount.nfs: trying text-based options 'vers=4,addr=192.168.xx.xx,clientaddr=192.168.xx.xx'
mount.nfs: mount(2): Operation not permitted
mount.nfs: trying text-based options 'addr=192.168.xx.xx'
mount.nfs: prog 100003, trying vers=3, prot=6
mount.nfs: trying 192.168.xx.xx prog 100003 vers 3 prot TCP port 2049
mount.nfs: prog 100005, trying vers=3, prot=17
mount.nfs: trying 192.168.xx.xx prog 100005 vers 3 prot UDP port 1011
nfshost:/share/dir on /somedir type nfs

nfshost RPC 환경 :

$ rpcinfo -T udp nfshost nfs
program 100003 version 2 ready and waiting
program 100003 version 3 ready and waiting
program 100003 version 4 ready and waiting

$ rpcinfo -T udp nfshost mountd
program 100005 version 1 ready and waiting
program 100005 version 2 ready and waiting
program 100005 version 3 ready and waiting

$ rpcinfo -T udp nfshost nlockmgr
program 100021 version 1 ready and waiting
rpcinfo: RPC: Program/version mismatch; low version = 1, high version = 4
program 100021 version 2 is not available
program 100021 version 3 ready and waiting
program 100021 version 4 ready and waiting

$ rpcinfo -T udp nfshost llockmgr
rpcinfo: RPC: Program not registered

$ rpcinfo nfshost
program version netid     address                service    owner
100000    2    tcp       0.0.0.0.0.111          portmapper unknown
100000    2    udp       0.0.0.0.0.111          portmapper unknown
100024    1    udp       0.0.0.0.2.212          status     unknown
100024    1    tcp       0.0.0.0.2.215          status     unknown
100021    1    udp       0.0.0.0.226.67         nlockmgr   unknown
100021    3    udp       0.0.0.0.226.67         nlockmgr   unknown
100021    4    udp       0.0.0.0.226.67         nlockmgr   unknown
100021    1    tcp       0.0.0.0.134.55         nlockmgr   unknown
100021    3    tcp       0.0.0.0.134.55         nlockmgr   unknown
100021    4    tcp       0.0.0.0.134.55         nlockmgr   unknown
100011    1    udp       0.0.0.0.3.230          rquotad    unknown
100011    2    udp       0.0.0.0.3.230          rquotad    unknown
100011    1    tcp       0.0.0.0.3.233          rquotad    unknown
100011    2    tcp       0.0.0.0.3.233          rquotad    unknown
100003    2    udp       0.0.0.0.8.1            nfs        unknown
100003    3    udp       0.0.0.0.8.1            nfs        unknown
100003    4    udp       0.0.0.0.8.1            nfs        unknown
100003    2    tcp       0.0.0.0.8.1            nfs        unknown
100003    3    tcp       0.0.0.0.8.1            nfs        unknown
100003    4    tcp       0.0.0.0.8.1            nfs        unknown
100005    1    udp       0.0.0.0.3.243          mountd     unknown
100005    1    tcp       0.0.0.0.3.246          mountd     unknown
100005    2    udp       0.0.0.0.3.243          mountd     unknown
100005    2    tcp       0.0.0.0.3.246          mountd     unknown
100005    3    udp       0.0.0.0.3.243          mountd     unknown
100005    3    tcp       0.0.0.0.3.246          mountd     unknown

환경:

$ uname -a
Linux whiteheat 3.0.0-15-generic #26-Ubuntu SMP Fri Jan 20 17:23:00 UTC 2012 x86_64 x86_64 x86_64 GNU/Linux

$ mount.nfs a b -V
mount.nfs: (linux nfs-utils 1.2.4)

어떤 업데이트? SLES 11 SP2 및 CentOS 6.4 vs SLES 9 SP4와 같은 최신 커널을 사용하는 nfs 클라이언트의 성능이 저하 된 것으로 나타났습니다. 통계에서 볼 수있는 유일한 차이점은 authrefrsh가 매우 높다는 것입니다. 이것이 성능 저하를 유발하는 추가 오버 헤드라고 가정합니다.
Banjer

업데이트가 없습니다. 죄송합니다. SSH + SCP가 옵션이기 때문에 응용 프로그램을 위해 NFS에서 멀어졌습니다. 이 문제는 크롤링되었습니다 :)
Chris Betti

그것이 nfs v3 대 v4 문제가 아닙니까?
kofemann

이 유닉스 SE 질문에 대해서는이 문제에 대한 더 많은 단서를 가지고 있습니다 : unix.stackexchange.com/questions/13557/…
Banjer

1
버그의 역사에 대한 자세한 내용 : bugzilla.redhat.com/show_bug.cgi?id=785931
Deer Hunter

답변:


1

NFS 에서이 정확한 문제가 발생했습니다. 내 경우의 문제는 actimeo 가 너무 낮게 설정되어 있기 때문입니다. 이 정확한 설정을 사용하지 않을 수 있지만 acregmin, acregmax, acdirmin 및 acdirmax와 같은 혼란을 야기 할 수있는 전체 설정이 있습니다. 기본적으로 시스템은 NFS에서 파일 속성을 캐싱합니다. 이 설정은 NFS에서 새로 고치기 전에 파일 속성이 유지되는 시간에 영향을줍니다. 사용량이 많은 시스템에서는 이러한 새로 고침이 고통 스럽습니다.

또 다른 문제는 noac 입니다. 이를 사용하면 다른 모든 클라이언트가 쓰기 작업을 즉시 사용할 수 있습니다. 그러나 쓰기는 쓰기-비하인드를 사용하지 않고 리모트에 쓰기가 완료 될 때까지 기다립니다. NFS에 자주 쓰는 경우 시스템이 무릎을 꿇을 수 있습니다.

이것은 다양한 옵션과 NFS 성능에 미치는 영향에 대해 이야기하는 흥미로운 블로그 기사입니다. 또한 볼 수 있었다 사람이 더 지침 NFS에 대한 페이지입니다. 불행히도 authrefrsh는 약간의 청어가 될 수 있으며 비슷한 증상이 있지만 내 문제는 전혀 관련이 없습니다.


iirc noac은 또한 자격 증명 캐싱과 관련이 있으므로 권한 메타 데이터에 대한 쓰기는 즉각적이고 "쓰기"는 없습니다. 확실하지 않기 때문에 편집하지 않았습니다.
Florian Heigl

나는 noac 관련 성능 문제를 겪고 있기 때문에 비 엔터프라이즈 NFS 서버로 작업하는 경우 실제로 이것이 문제입니다.
Florian Heigl 2016 년
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.