Il file system di rete (NFS) consente alle macchine di montare una partizione del disco su una macchina remota come se fosse un disco locale. Consente una condivisione rapida e senza interruzioni di file su una rete. Tuttavia, poiché NFS si basa sull'infrastruttura di rete esistente, eventuali problemi nella rete possono influire sulle prestazioni della connessione. I due strumenti più importanti che ho utilizzato negli anni per analizzare le prestazioni di NFS sia dal punto di vista del server che del client sono nfsstat
e nsfiostat
. I due strumenti fanno parte del pacchetto nfs-utils e devono essere installati come tali:
yum install -y nfs-utils
Comprendere l'output degli strumenti può aiutare a ottimizzare le prestazioni NFS.
Il comando nfsstat
Il nfsstat
Il comando visualizza le informazioni statistiche sulle interfacce NFS e Remote Procedure Call (RPC) al kernel.
Sul server NFS, eseguire il comando seguente:
nfsstat -s
L'output dovrebbe essere simile al seguente:
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%
Il campo più importante da controllare è il badcalls
, che rappresenta il numero totale di chiamate rifiutate dal livello RPC. Quando il badcalls
è maggiore di 0, è necessario controllare la rete sottostante, poiché potrebbe esserci una latenza. Inoltre, è molto importante inserire il server NFS nella stessa sottorete del client NFS durante la progettazione della rete.
Sul client NFS, esegui quanto segue:
nfsstat -c
L'output dovrebbe essere simile al seguente:
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%
Da quanto sopra, il client sta andando bene in quanto ha relativamente poche richieste di ritrasmissione. Se riscontri ritrasmissioni eccessive, potresti voler regolare le dimensioni del buffer di trasferimento dati, che sono specificate da mount
opzioni di comando rsize
e wsize
.
Puoi anche controllare i pacchetti eliminati eseguendo il seguente comando sia sul server che sul client:
nfsstat -o net
Il comando nfsiostat
Il nfsiostat
il comando funziona in modo simile a iostat
comando, ma viene utilizzato per i punti di montaggio NFS sul server. Utilizza il file /proc/self/mountstats
come input e fornisce informazioni sulle prestazioni di input/output delle condivisioni NFS montate sul sistema.
Il nfsiostat
Il comando viene utilizzato sul client NFS per verificarne le prestazioni durante la comunicazione con il server NFS.
Esecuzione di nfsiostat
senza alcun argomento dovrebbe avere un output simile al seguente:
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
Le statistiche più importanti a cui prestare attenzione sono:
retrans
- Questo è il numero di ritrasmissioni.avg RTT (ms)
- Questa è la durata dal momento in cui il kernel del client invia la richiesta RPC fino al momento in cui riceve la risposta.avg exe (ms)
- Questa è la durata dal momento in cui il client NFS effettua la richiesta RPC al proprio kernel fino al completamento della richiesta RPC. Ciò include l'RTT.
Un avg RTT(ms)
molto alto e retrans
indica che c'è un'elevata latenza sulla rete. L'elevata latenza influisce anche sulle prestazioni di I/O, poiché ci saranno molti timeout. Il cliente diventerà lento e difficile da lavorare.
È anche molto importante disporre sempre di una rete dedicata tra il server NFS e il client NFS per garantire un throughput elevato.
Conclusione
L'uso di nfsstat
e nfsiostat
risolvere i problemi di prestazioni di NFS può renderti un amministratore di sistema molto più efficiente. Prenditi del tempo per imparare e utilizzare questi fantastici strumenti NFS.
[ Vuoi di più per la tua rete? Scarica un ebook gratuito sull'automazione di rete con Ansible. ]