Pertanyaan Apa yang menyebabkan linux NFS client side RPC credential menyegarkan?


Menggunakan nfsstat -cSaya melihat "authrefrsh" tinggi (dikenal sebagai "newcred" pada beberapa sistem) mengandalkan komputer klien NFS saya untuk operasi seperti ls dan find pada direktori yang berisi ~ 1000 file. Ini berkorelasi dengan kinerja yang sangat buruk (20 daftar direktori + menit). Operasi NFS cache tidak menunjukkan perilaku ini (authrefrsh atau perlambatan).

authrefrsh = memanggil setiap kali saya memeriksa 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%

Detail koneksi:

$ 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

lingkungan RPC nfshost:

$ 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

Lingkungan Hidup:

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

10
2018-02-21 23:26




pembaruan apa saja? Saya telah melihat kinerja klien nfs yang lebih buruk dengan kernel yang lebih baru, mis. SLES 11 SP2 dan CentOS 6.4 vs SLES 9 SP4. Satu-satunya perbedaan yang saya lihat dalam statistik adalah authrefrsh sangat tinggi. Saya mengasumsikan ini adalah overhead tambahan yang menyebabkan penurunan kinerja. - Banjer
Tidak ada pembaruan, maaf. Saya sudah pindah dari NFS untuk aplikasi saya, karena SSH + SCP adalah opsi. Masalahnya melumpuhkan :) - Chris Betti
apakah Anda yakin itu bukan masalah nfs v3 vs v4? - kofemann
fyi pertanyaan Unix SE ini lebih mengarah pada masalah ini: unix.stackexchange.com/questions/13557/… - Banjer
Lebih lanjut tentang sejarah bug: bugzilla.redhat.com/show_bug.cgi?id=785931 - Deer Hunter


Jawaban:


Saya mengalami masalah ini dengan NFS. Masalah dalam kasus saya disebabkan oleh actimeo ditetapkan terlalu rendah. Meskipun Anda mungkin tidak menggunakan pengaturan yang tepat ini, ada seluruh keluarga pengaturan yang dapat menyebabkan malapetaka: acregmin, acregmax, acdirmin, dan acdirmax. Pada dasarnya apa yang terjadi adalah bahwa sistem adalah caching atribut file dari NFS. Pengaturan ini mempengaruhi berapa lama atribut file disimpan sebelum menyegarkan dari NFS. Pada sistem dengan penggunaan berat, penyegaran ini menjadi sangat jelas.

Pengaturan bermasalah lainnya adalah noac. Jika Anda menggunakan ini, Anda menjamin bahwa setiap tulisan akan segera tersedia untuk semua klien lainnya. Namun, menulis akan menunggu hingga selesai menulis ke remote daripada menggunakan write-behind. Ini dapat membawa sistem ke lututnya jika sering menulis ke NFS.

Ini adalah artikel blog yang menarik di mana mereka berbicara tentang opsi yang berbeda dan efeknya pada kinerja NFS. Anda juga bisa melihat pria halaman untuk NFS untuk panduan lebih lanjut. Sayangnya, authrefrsh dapat menjadi sedikit herring merah dan masalah saya mungkin sama sekali tidak berhubungan, meskipun dengan gejala yang sama.


1
2017-11-12 22:32



iirc noac juga hanya menyangkut cache kredensial, jadi menulis untuk metadata izin langsung, tidak ada "menulis". Tidak diedit karena saya tidak begitu yakin sekarang. - Florian Heigl
Saya hanya melihat masalah kinerja noac-terkait jadi ini adalah hal yang sebenarnya, jika bekerja dengan server NFS non-perusahaan. - Florian Heigl