Повільний NFS, nfsstat -c: про що детально йде поле authrefrsh (aka newcreds?)?


10

(net-fs / nfs-utils-1.2.3-r1, 2.6.38.5-zen + Gentoo)

Гуглінг, здається, є цілковитою тупиком. man nfsstat говорить багато нічого про цю тему. Найближчим, що я міг отримати, було дізнатися про те, що, ймовірно, раніше було « новобранцями ».

newcreds Кількість разів, коли інформацію про автентифікацію довелося оновлювати.

Моя проблема полягає в тому, що я думаю, що я бачу продуктивність NFS subpar над OpenVPN, і єдине, що я можу відразу побачити, що суттєво відрізняється від усіх результатів nfsstat Google, - це те, що моє поле "дзвінки" дорівнює точно "authrefrsh" і тому дуже високо . Усі результати пошуку завжди мали authrefrsh як 0 або дуже низьке число. Перш ніж перейти до налагодження деяких інших аспектів, я міг би дізнатися, що це означає.

Переглянута операція - це новий пакет через NFS-передачу. Компанія emerge перетинає велике дерево під час своєї роботи, але попередній досвід говорить про те, що вистава, яку я бачу, ненормальна.

$ watch -n 1 nfsstat -c

Every 1,0s: nfsstat -c                                Sat May 21 23:04:55 2011

Client rpc stats:
calls      retrans    authrefrsh
308565     2211       308565

Client nfs v3:
null         getattr      setattr      lookup       access       readlink
0         0% 172372   55% 17        0% 30485     9% 36057    11% 26831     8%
read         write        create       mkdir        symlink      mknod
25879     8% 107       0% 21        0% 0         0% 0         0% 0         0%
remove       rmdir        rename       link         readdir      readdirplus
16        0% 0         0% 11        0% 0         0% 0         0% 16668     5%
fsstat       fsinfo       pathconf     commit
3         0% 50        0% 25        0% 2         0%

Я не можу точно зрозуміти, що таке authrefrsh (а це написання, це навмисне btw?), І чому він збільшується так у моєму випадку?


Коли ви говорите про повільний NFS, що змушує вас вважати, що ефективність NFS повинна бути швидшою? Чи можете ви оцінити повільність? Чи важливий час доби для роботи WRT?
Майк Пеннінгтон

"Повільний NFS" означає, що трафік NFS не повинен мати проблем із залученням всієї доступної пропускної здатності, яка через VPN була не такою великою (100 кБ / сек). Натомість iftop показував мені трафік лише одноцифрового кБ / сек через tun0. Я вважаю, що я звузив проблему до Portage, який встановлює пару тисяч пакетів у моєму PKGDIR під час появи нових пробіжок, пов’язаних із binpkg, що, здається, неприємно повільно працює. З того, що я можу сказати до цього часу, найкращим рішенням може бути регулярне оновлення порції squashfs на віддалених робочих станціях та отримання binpkgs через HTTP binhost замість NFS-встановленого PKGDIR.
lkraav

Будь-які оновлення щодо цього? Я помітив погіршення продуктивності клієнтів NFS з новішими серверами SLES 11 і CentOS 6 порівняно з нашими старими серверами SLES 9. Клієнти SLES 9 швидші, а також показують authrefrsh=0, тоді як новіші ОС показують тону authrefrsh. Я думаю, що тут є кореляція, але не зовсім впевнений, що це все означає.
Банджер

Який тип аутентифікації NFS ви робите? AUTH_SYS?
Братчлі

Щоб відповісти на частину вашого запитання, authrefrsh - це кількість разів, до якої звернувся клієнт NFS, call_refresh()який в основному виходить на сервер RPC (portmap, rpcbind тощо) та перевіряє його облікові дані з сервером. Нам потрібно з'ясувати, чи насправді це спричиняє затримку. Якщо ви робите, AUTH_SYSтоді накладні витрати низькі, і це не буде причиною.
Братчлі

Відповіді:


5

З статті Red Hat у коментарях рішення йдеться

Це очікувана поведінка.

Не дуже корисно, але це також вказує на причину цього.

Він посилається на фіксування a17c2153d2e271b0cbacae9bed83b0eaa41db7e1 в пакеті sunrpc, який переміщується там, де відбувається аутентифікація nfs. Я не буду копіювати / вставляти цілу комісію, але це здебільшого змінює ці рядки.

-struct rpc_cred *cred = task->tk_msg.rpc_cred;
+struct rpc_cred *cred = task->tk_rqstp->rq_cred;

Моє обмежене розуміння полягає в тому, що цей рядок рухається там, де відбувається call_refresh () (раніше, ніж пізніше). Це в свою чергу означає, що більшість всіх запитів nfs призведе до збільшення authrefrsh, оскільки аутентифікація завжди використовується.


1

Я бачу те саме (не використовуючи vpn) - authrefrsh == дзвонить на стороні клієнта. Мені здається, що кількість викликів збільшується, потім сповільнюється, а кількість authrefrsh потім наздоганяє.

Статистика клієнта RPC:

calls      retrans    authrefrsh
261697     0          261697

Я бачу дуже високу кількість очікувань:

dd if=/dev/zero of=/mnt/omoikane/testfile bs=16k count=2048

(від іостату :)

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
          4.04    0.00    4.04   91.92    0.00    0.00

Я не можу побачити нічого незвичайного в проводці - я використовую nfs3 та tcp.


1

З того, що я розумію за цим посиланням, authrefresh = дзвінки не вказують на проблему.

https://bugzilla.redhat.com/show_bug.cgi?id=785931


Ласкаво просимо до Unix & Linux! Як правило, нам подобаються відповіді на сайті, щоб мати можливість самостійно стояти - Посилання чудові, але якщо це посилання коли-небудь перерветься, відповідь повинна мати достатньо інформації, щоб вона все-таки була корисною. Будь ласка, подумайте про редагування своєї відповіді, щоб включити більше деталей. Див. Поширені запитання для отримання додаткової інформації.
slm

що вони означають, що вони не впевнені, що це причина проблеми чи просто піднімається через неї. "Скейткейтінг", безумовно, вказує на те, що речі не добре. аналогічно це в основному спостерігається паралельно з негарними проблемами парфумів.
Флоріан Хейгл
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.