Síťový souborový systém (NFS) umožňuje strojům připojit diskový oddíl na vzdálený počítač, jako by to byl místní disk. Umožňuje rychlé a bezproblémové sdílení souborů v síti. Protože však NFS spoléhá na stávající síťovou infrastrukturu, mohou jakékoli závady v síti ovlivnit výkon připojení. Dva nejdůležitější nástroje, které jsem v průběhu let používal k analýze výkonu NFS z pohledu serveru i klienta, jsou nfsstat
a nsfiostat
. Tyto dva nástroje jsou součástí balíčku nfs-utils a je třeba je nainstalovat jako takové:
yum install -y nfs-utils
Pochopení výstupu nástrojů může pomoci s optimalizací výkonu NFS.
Příkaz nfsstat
nfsstat
zobrazí statistické informace o rozhraních NFS a Remote Procedure Call (RPC) k jádru.
Na serveru NFS spusťte následující příkaz:
nfsstat -s
Výstup by měl být podobný následujícímu:
Server rpc stats:
calls badcalls badclnt badauth xdrcall
107310012 0 0 0 0
Server nfs v4:
null compound
21 0% 107310004 99%
Server nfs v4 operations:
op0-unused op1-unused op2-future access close commit
0 0% 0 0% 0 0% 910848 0% 5671218 2% 153218 0%
create delegpurge delegreturn getattr getfh link
4104 0% 0 0% 517 0% 58659066 22% 8700995 3% 0 0%
Nejdůležitější pole ke kontrole je badcalls
, což představuje celkový počet hovorů odmítnutých vrstvou RPC. Když badcalls
je větší než 0, než je třeba zkontrolovat základní síť, protože může existovat latence. Při návrhu sítě je také velmi důležité umístit server NFS do stejné podsítě jako klient NFS.
Na klientovi NFS spustíte následující:
nfsstat -c
Výstup by měl být podobný následujícímu:
Client rpc stats:
calls retrans authrefrsh
30557550 27686 11075
Client nfs v4:
null read write commit open open_conf
0 0% 1601136 5% 568239 1% 23683 0% 1652804 5% 1466260 4%
open_noat open_dgrd close setattr fsinfo renew
0 0% 0 0% 1648000 5% 27154 0% 8 0% 28320 0%
Z výše uvedeného je na tom klient dobře, protože má relativně málo požadavků na retranslaci. Pokud se setkáváte s nadměrným počtem opakovaných přenosů, možná budete chtít upravit velikosti vyrovnávací paměti přenosu dat, které jsou určeny mount
možnosti příkazu rsize
a wsize
.
Zahozený paket můžete také zkontrolovat spuštěním následujícího příkazu na serveru i na klientovi:
nfsstat -o net
Příkaz nfsiostat
nfsiostat
příkaz funguje podobně jako iostat
příkaz, ale používá se pro přípojné body NFS na serveru. Používá soubor /proc/self/mountstats
jako vstup a poskytuje informace o vstupním/výstupním výkonu sdílených složek NFS nainstalovaných v systému.
nfsiostat
příkaz se používá na klientovi NFS ke kontrole jeho výkonu při komunikaci se serverem NFS.
Spuštění nfsiostat
bez jakéhokoli argumentu by měl mít výstup podobný následujícímu:
10.10.1.10:/data/share mounted on /samba/students:
op/s rpc bklog
16.96 0.00
read: ops/s kB/s kB/op retrans avg RTT (ms) avg exe (ms)
0.900 5.392 5.990 0 (0.0%) 0.550 0.660
write: ops/s kB/s kB/op retrans avg RTT (ms) avg exe (ms)
0.031 21.818 708.149 0 (0.0%) 122.745 35874.872
Nejdůležitější statistiky, na které je třeba dávat pozor, jsou:
retrans
- Toto je počet opakovaných přenosů.avg RTT (ms)
- Toto je doba trvání od okamžiku, kdy jádro klienta odešle požadavek RPC, do okamžiku, kdy obdrží odpověď.avg exe (ms)
- Toto je doba od okamžiku, kdy klient NFS odešle požadavek RPC jeho jádru, až do dokončení požadavku RPC. To zahrnuje RTT.
Velmi vysoká avg RTT(ms)
a retrans
označuje vysokou latenci v síti. Vysoká latence také ovlivňuje výkon I/O, protože dojde k mnoha časovým limitům. Klient se stane pomalým a bude obtížné s ním pracovat.
Je také velmi důležité mít vždy vyhrazenou síť mezi serverem NFS a klientem NFS, aby byla zajištěna vysoká propustnost.
Zabalení
Použití nfsstat
a nfsiostat
řešení problémů s výkonem NFS z vás může udělat mnohem efektivnějšího správce systému. Udělejte si čas na to, abyste se naučili tyto skvělé nástroje NFS a používali je.
[ Chcete pro svou síť více? Stáhněte si zdarma e-knihu o automatizaci sítě s Ansible. ]