Yavaş NFS, nfsstat -c: authrefrsh (aka newcreds?) Alanı ayrıntılı olarak nedir?


10

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

Google'ı araştırmak tam bir çıkmaz gibi görünüyor. adam nfsstat konuyla ilgili pek çok şey söylemiyor. Ben-ebil almak en yakın muhtemelen daha önce " newcreds " olduğunu bulmak oldu .

newcreds Kimlik doğrulama bilgilerinin kaç kez yenilenmesi gerektiği.

Benim sorunum olduğunu düşünüyorum ben OpenVPN üzerinde subpar NFS performansı ve ben hemen o Google sonuçları nfsstat hepsinden daha önemli ölçüde farklı olduğunu görebilirsiniz tek şey görüyorum, benim "çağrıları" alanı tam olarak "authrefrsh" eşittir ve çok yüksek bu nedenle olmasıdır . Tüm arama sonucu çıktıları her zaman 0 veya çok düşük bir sayı olarak authrefrsh değerine sahiptir. Başka yönlerden hata ayıklamaya geçmeden önce bunun ne anlama geldiğini bulmak için kullanabilirdim.

İzlenen işlem, NFS paylaşılan portage üzerinden bir paket ortaya çıkıyor. emerge, çalışması sırasında büyük bir ağacın üzerinden geçer, ancak önceki deneyimler gördüğüm performansın anormal olduğunu söylüyor.

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

Tam olarak authrefrsh'in ne olduğunu anlayamıyorum (ve bu yazım, kasıtlı btw mi?) Ve benim durumumda neden bu kadar artıyor?


Yavaş NFS dediğinizde, sizi NFS performansının daha hızlı olması gerektiğine inandırmaya ne sebep olur? Yavaş ölçebilir misiniz? Günün saati WRT performansı önemli midir?
Mike Pennington

"Yavaş NFS", NFS trafiğinin tüm bant genişliğini almakta sorun yaşamaması gerektiği anlamına gelir; VPN üzerinden bu kadar fazla değildi (100 kB / sn). Bunun yerine iftop bana tun0 üzerinden sadece tek haneli kB / sn trafiği gösteriyordu. Binpkg ile ilgili ortaya çıkan çalışmalarda PKGDIR'imde birkaç bin paketin Portage'a indirilmesi sorununu daralttığımı düşünüyorum, bu da çok yavaş bir işlem gibi görünüyor. Şimdiye kadar söyleyebileceğim kadarıyla, en iyi çözüm uzak iş istasyonlarında düzenli olarak squashfs portage'ı güncellemek ve NFS'ye monte PKGDIR yerine HTTP binhost üzerinden binpkgs almak olabilir.
lkraav

Bu konuda herhangi bir güncelleme var mı? Eski SLES 9 sunucularımızla karşılaştırıldığında, daha yeni SLES 11 ve CentOS 6 sunucularla daha düşük NFS istemci performansı fark ettim. SLES 9 istemcileri daha hızlı ve aynı zamanda gösteriyor authrefrsh=0, daha yeni işletim sistemleri ise bir ton gösteriyor authrefrsh. Bence burada bir korelasyon var, ama bunların ne anlama geldiğinden tam olarak emin değilim.
Banjer

Ne tür bir NFS kimlik doğrulaması yapıyorsunuz? AUTH_SYS?
Bratchley

Sorunuzun bir bölümünü yanıtlamak için, authrefrsh, call_refresh()temelde RPC sunucusuna (portmap, rpcbind, vb.) Giden ve kimlik bilgilerini sunucu ile doğrulayan NFS istemcisinin kaç kez arama yaptığıdır. Gecikmeye neden olan şeyin aslında olup olmadığını bulmamız gerekir. Eğer yapıyorsanız AUTH_SYS, ek yük düşüktür ve nedeni olmaz.
Bratchley

Yanıtlar:


5

Gönderen Red Hat makalesinde çözüm diyor yorumlarda

Bu beklenen davranıştır.

Çok yararlı değil ama aynı zamanda bunun nedenini de gösteriyor.

Sunspc paketinde nfs kimlik doğrulamasının gerçekleştiği yerde hareket eden a17c2153d2e271b0cbacae9bed83b0eaa41db7e1 komutunu referans alır. Tüm taahhüdü kopyalamaya / yapıştırmayacağım, ancak çoğunlukla bu satırları değiştiriyor.

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

Sınırlı anlayışım, bu satırın call_refresh () öğesinin (daha sonra değil, daha erken) gerçekleştiği yere taşınmasıdır. Bu da, tüm nfs isteklerinin çoğunun kimlik doğrulama her zaman kullanıldığından authrefrsh değerinin artmasına neden olacağı anlamına gelir.


1

Aynı şeyi görüyorum (vpn kullanarak değil) - istemci tarafında authrefrsh == çağrıları. Bana öyle geliyor ki çağrıların sayısı artıyor, sonra yavaşlıyor ve o zaman authrefrsh sayısı yakalanıyor.

İstemci rpc istatistikleri:

calls      retrans    authrefrsh
261697     0          261697

Ben de çok yüksek iowait görüyorum:

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

(iostat'tan :)

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

Wireshark'ta olağandışı bir şey göremiyorum - nfs3 ve tcp kullanıyorum.


1

Bu bağlantıdan anladığım kadarıyla authrefresh = aramalar bir sorun olduğunu göstermiyor.

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


Unix ve Linux'a hoş geldiniz! Genellikle sitedeki cevapları kendi başlarına ayakta tutabilmeyi seviyoruz - Bağlantılar harika, ancak bu bağlantı koparsa cevabın hala yardımcı olacak yeterli bilgiye sahip olması gerekir. Lütfen daha fazla ayrıntı eklemek için yanıtınızı düzenlemeyi düşünün. Daha fazla bilgi için SSS bölümüne bakın .
slm

Demek istedikleri, sorunun sebebi olduğundan ya da sadece onun yüzünden yükseldiğinden emin olmadıklarıdır. "skyrocketing" kesinlikle işlerin iyi olmadığını gösterir. benzer şekilde bu çoğunlukla çirkin mükemmel meselelere paralel olarak görülür.
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.