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.