Điều gì gây ra lặp đi lặp lại thông tin xác thực RPC bên phía máy khách NFS?


10

Khi sử dụng nfsstat -c, tôi thấy một "authrefrsh" cao (được gọi là "newcred" trên một số hệ thống) được tính trên máy khách NFS của tôi cho các hoạt động như lsfindtrên các thư mục chứa ~ 1000 tệp. Điều này tương quan với hiệu suất rất kém (danh sách thư mục hơn 20 phút). Các hoạt động NFS được lưu trong bộ nhớ cache không thể hiện hành vi này (authrefrsh hoặc làm chậm).

authrefrsh = cuộc gọi mỗi khi tôi kiểm tra 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%

Chi tiết kết nối:

$ 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

môi trường 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

Môi trường:

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

Bất cứ cập nhập nào? Tôi đã nhận thấy hiệu suất kém hơn của các máy khách nfs với các nhân mới hơn, ví dụ SLES 11 SP2 và CentOS 6.4 so với SLES 9 SP4. Sự khác biệt duy nhất tôi thấy trong các số liệu thống kê là authrefrsh rất cao. Tôi cho rằng đây là chi phí phụ gây ra sự suy giảm hiệu suất.
Banjer

Không có cập nhật, xin lỗi. Tôi đã chuyển khỏi NFS cho ứng dụng của mình, vì SSH + SCP là một tùy chọn. Vấn đề đã bị tê liệt :)
Chris Betti

bạn có chắc không phải là vấn đề nfs v3 so với v4 không?
kofemann

fyi câu hỏi Unix SE này có nhiều khách hàng tiềm năng hơn về vấn đề này: unix.stackexchange.com/questions/13557/ Kẻ
Banjer

1
Thông tin thêm về lịch sử của lỗi: bugzilla.redhat.com/show_orms.cgi?id=785931
Deer Hunter

Câu trả lời:


1

Tôi đã gặp vấn đề chính xác này với NFS. Vấn đề trong trường hợp của tôi là do Actimeo được đặt quá thấp. Mặc dù bạn có thể không sử dụng cài đặt chính xác này, nhưng có cả một nhóm cài đặt có thể gây ra sự tàn phá: acregmin, acregmax, acdirmin và acdirmax. Về cơ bản những gì xảy ra là hệ thống đang lưu trữ các thuộc tính tệp từ NFS. Các cài đặt này ảnh hưởng đến thời gian các thuộc tính tệp được lưu giữ trước khi làm mới từ NFS. Trên một hệ thống với việc sử dụng nhiều, những làm mới trở nên rõ ràng đau đớn.

Một thiết lập có vấn đề khác là noac . Nếu bạn sử dụng điều này, bạn đảm bảo rằng bất kỳ ghi nào sẽ ngay lập tức có sẵn cho tất cả các khách hàng khác. Tuy nhiên, ghi sẽ đợi cho đến khi viết xong vào điều khiển từ xa thay vì sử dụng ghi phía sau. Điều này có thể khiến một hệ thống quỳ xuống nếu nó thường xuyên ghi vào NFS.

Đây là một bài viết blog thú vị nơi họ nói về các tùy chọn khác nhau và ảnh hưởng của chúng đến hiệu suất NFS. Bạn cũng có thể xem trang man cho NFS để được hướng dẫn thêm. Thật không may, authrefrsh có thể là một chút cá trích đỏ và vấn đề của tôi có thể hoàn toàn không liên quan, mặc dù với các triệu chứng tương tự.


iirc noac cũng chỉ liên quan đến bộ nhớ đệm thông tin xác thực, vì vậy việc ghi vào siêu dữ liệu cho phép là ngay lập tức, không có "ghi". Không chỉnh sửa vì bây giờ tôi không chắc chắn.
Florian Heigl

Tôi chỉ thấy một vấn đề hiệu suất liên quan đến noac vì vậy đây thực tế là một vấn đề, nếu làm việc với các máy chủ NFS không phải là doanh nghiệp.
Florian Heigl
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.