Tekrarlanan Linux NFS istemci tarafı RPC kimlik bilgilerini yenilemeye ne sebep olur?


10

Kullanılması nfsstat -cI (bazı sistemlerde "newcred" olarak bilinir) bir yüksek "authrefrsh" gibi işlemler için benim NFS istemcisi pc saymak görüyorum, lsve find~ 1000 dosyaların olduğu dizinlere. Bu, çok düşük performansla ilişkilidir (20+ dakikadan başlayan dizin listeleri). Önbelleğe alınan NFS işlemleri bu davranışı göstermez (authrefrsh veya yavaşlama).

authrefrsh = nfsstat'ı her kontrol ettiğimde çağrılar:

$ 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%

Bağlantı detayları:

$ 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 ortamı:

$ 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

Çevre:

$ 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)

güncelleme var mı? SLES 11 SP2 ve CentOS 6.4 vs SLES 9 SP4 gibi yeni çekirdeklere sahip nfs istemcilerin performansının daha düşük olduğunu fark ettim. İstatistiklerde gördüğüm tek fark authrefrsh'ın çok yüksek olmasıdır. Bunun performansta bir düşüşe neden olan ek yük olduğunu varsayıyorum.
Banjer

Güncelleme yok, üzgünüm. SSH + SCP bir seçenek olduğu için uygulamam için NFS'den uzaklaştım. Sorun sakatlandı :)
Chris Betti

nfs v3 ve v4 sorununun olmadığından emin misiniz?
kofemann

Bu unix SE sorusunun bu konuda daha fazla ipucu var: unix.stackexchange.com/questions/13557/…
Banjer

1
Hatanın tarihi hakkında daha fazla bilgi: bugzilla.redhat.com/show_bug.cgi?id=785931
Deer Hunter

Yanıtlar:


1

NFS ile ilgili bu sorunla karşılaştım. Benim durumumdaki sorun, actimeo'nun çok düşük ayarlanmasından kaynaklandı . Bu ayarı tam olarak kullanmasanız da, hasara yol açabilecek bütün bir ayar ailesi vardır: acregmin, acregmax, acdirmin ve acdirmax. Esasen, sistemin dosya özniteliklerini NFS'den önbelleğe almasıdır. Bu ayarlar, NFS'den yenilenmeden önce dosya özniteliklerinin ne kadar süreyle tutulacağını etkiler. Yoğun kullanıma sahip bir sistemde, bu yenilemeler acı verici bir şekilde belirginleşir.

Başka bir sorunlu ortam noac . Bunu kullanırsanız, yazma işlemlerinin diğer tüm istemciler tarafından hemen kullanılabileceğini garanti edersiniz. Ancak, yazma işlemleri arkadan yazma yerine uzaktan kumandaya yazmayı bitirene kadar bekleyecektir. Bu, bir sistemi sık sık NFS'ye yazarsa dizlerine getirebilir.

Bu , farklı seçenekler ve NFS performansı üzerindeki etkileri hakkında konuştukları ilginç bir blog makalesidir. Ayrıca bakabilir adam daha rehberlik için NFS sayfa. Ne yazık ki, authrefrsh biraz kırmızı bir ringa balığı olabilir ve benim sorunum benzer semptomlarla da olsa tamamen ilgisiz olabilir.


iirc noac da sadece kimlik bilgisi önbelleğe alma ile ilgilidir, bu nedenle izin meta verilerine yazma işlemleri anında yapılır, "yazma" olmaz. Artık emin olmadığımdan beri düzenleme yapmadım.
Florian Heigl

Ben sadece kurumsal olmayan NFS sunucuları ile çalışıyorsanız, bu aslında bir şey, noac ile ilgili bir performans sorunu görüyorum.
Florian Heigl
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.