สาเหตุใดที่ทำให้การซ้ำข้อมูลประจำตัว RPC ของ linux NFS ซ้ำอีกครั้ง


10

ใช้nfsstat -cฉันเห็นจำนวนสูง "authrefrsh" (เรียกว่า "newcred" ในบางระบบ) นับบนพีซีของลูกค้า NFS ของฉันสำหรับการดำเนินการเช่นlsและfindในไดเรกทอรีที่มี ~ 1,000 ไฟล์ สิ่งนี้สัมพันธ์กับประสิทธิภาพที่ต่ำมาก (รายชื่อไดเรกทอรีมากกว่า 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)

การปรับปรุงใด ๆ ฉันสังเกตเห็นประสิทธิภาพที่แย่ลงของไคลเอนต์ nfs ที่มีเคอร์เนลใหม่เช่น SLES 11 SP2 และ CentOS 6.4 เทียบกับ SLES 9 SP4 ข้อแตกต่างที่ฉันเห็นในสถิติคือ authrefrsh นั้นสูงมาก ฉันสมมติว่านี่เป็นค่าใช้จ่ายพิเศษที่ทำให้ประสิทธิภาพลดลง
Banjer

ไม่มีการอัปเดตขออภัย ฉันย้ายออกจาก NFS สำหรับแอปพลิเคชันของฉันเนื่องจาก SSH + SCP เป็นตัวเลือก ประเด็นสำคัญคือการทำให้หมดอำนาจ :)
คริส Betti

คุณแน่ใจหรือว่าไม่ใช่ปัญหาของ nfs v3 กับ v4
kofemann

fyi คำถาม Unix 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 คุณสามารถดูคำแนะนำเพิ่มเติมได้จากman page สำหรับ NFS น่าเสียดายที่ authrefrsh อาจเป็นปลาเฮอริ่งแดงและปัญหาของฉันอาจไม่เกี่ยวข้องโดยสิ้นเชิงแม้ว่าจะมีอาการคล้ายกัน


iirc noac นั้นเกี่ยวข้องกับการแคชหนังสือรับรองดังนั้นการเขียนไปยังข้อมูลเมตาของการอนุญาตจะเป็นแบบทันทีไม่มี "เขียน" ไม่ได้แก้ไขเนื่องจากฉันยังไม่แน่ใจ
Florian Heigl

ฉันเพิ่งเห็นปัญหาประสิทธิภาพการทำงานที่เกี่ยวข้องกับ noac ดังนั้นนี่เป็นเรื่องจริงถ้าทำงานกับเซิร์ฟเวอร์ NFS ที่ไม่ใช่ขององค์กร
Florian Heigl
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.