NFS, configurazione e prestazioni

Questi sono appunti preliminari.

Prestazioni

Il piu` grosso problema che vedo con NFS e` che le prestazioni fanno schifo, specie quando dovrebbero essere ottimizzate, tipo quando si copia un unico file grosso fra due macchine che per il resto non stanno facendo nulla, su una rete gigabit praticamente scarica.

Apparentemente e` difficile superare i 200 mbit, perche` c'e` perdita di dati e questo obbliga la connessione a rallentare e ripartire. Forse dovrei fare delle prove con ECN.

I test sono stati fatti su un server Debian Etch usando il server kernelspace, e su un client Debian Sarge.

Configurazione server: (/etc/exports)

/ud0/backup        *(rw,async,anonuid=1001,anongid=100)

Configurazione client:

mount -t nfs 10.1.42.175:/ud0/backup /mnt -o rsize=16384,wsize=16384,tcp,vers=3

Nella configurazione client ho usato il protocollo TCP perche` migliora parecchio rispetto a UDP. Poi, sto facendo prove con diverse dimensioni dei blocchi (8192, 16384, 32768, 65536).

Nelle prove ho tentato di usare un cavo diretto anziche` passare per uno switch, ma continuano ad esserci perdite di pacchetti, anche con il cavo diretto. ifconfig non riporta errori sulle interfacce, eppure pacchetti persi ce ne sono.

Potrebbe essere il bus che non ci sta dietro? Non dovrebbe. La NIC che fa schifo? Piu` probabile. eppure ho provato una yukon integrata e una e1000 pci e fondamentalmente non cambia nulla.

In linea di massima probabilmente la migliore dimensione del blocco e` 32K.

Test fra server e client tutti e due Squeeze

Su una rete gigabit, un client molto veloce (xeon con dischi SAS) e un server lento (P4 con dischi IDE), la migliore prestazione per la copia di files grossi, intorno ai 350 Mbit sostenuti, si ottiene con un mount tipo:

mount -t nfs -o udp,vers=3   boh:/backup1 /mnt

Usare il TCP provoca una prestazione che va e viene, sinonimo di pacchetti persi. Usare rsize e wsize a 16384 provoca un leggero aumento di prestazioni all'inizio, poi il disco lento del client ammazza tutto quanto.

LinuxDebian/Nfs (last edited 2012-04-10 10:38:47 by Kurgan)