Sto pianificando la mia nuova infrastruttura di archiviazione condivisa per una piccola farm di server Web. Pertanto ho eseguito molti test con molti filesystem NAS. In questo modo, ho ottenuto alcuni risultati inaspettati e vorrei sapere se qualcuno qui può confermarlo.
In breve: Samba è enormemente più veloce di NFS e GlusterFS per le piccole scritture di file.
Ecco cosa ho fatto: ho eseguito un semplice "benchmark rsync" con molti file per confrontare le prestazioni di scrittura per file di piccole dimensioni. Per una riproduzione più semplice, l'ho eseguito di nuovo proprio ora con i contenuti dell'attuale wordpress tar.gz.
- GlusterFS replicato 2: 32-35 secondi , elevato carico della CPU
- GlusterFS single: 14-16 secondi , elevato carico della CPU
- Client GlusterFS + NFS: 16-19 secondi , elevato carico della CPU
- Server kernel NFS + client NFS (sincronizzazione): 32-36 secondi , carico CPU molto basso
- Server kernel NFS + client NFS (asincrono): 3-4 secondi , carico CPU molto basso
- Samba: 4-7 secondi , carico medio della CPU
- Disco diretto: <1 secondo
Non sono assolutamente un guru di samba (penso che il mio ultimo contatto sia stato con samba 2.x), quindi non ho ottimizzato nulla qui - solo una configurazione immediata (pacchetto debian / squeeze). L'unica cosa che ho aggiunto "sync always = yes" che dovrebbe imporre la sincronizzazione dopo la scrittura (ma vedendo quei risultati ..). Senza di essa, i test sono stati circa 1-2 secondi più veloci.
Tutti i test sono stati eseguiti sulla stessa macchina (auto-montata è l'esportazione NAS), quindi nessun ritardo di rete: prestazioni del protocollo pure.
Nodo laterale: come file system ho usato ext4 e xfs. I risultati sopra riportati sono con ext4. xfs ha ottenuto prestazioni migliori del 40% (meno tempo). Le macchine sono istanze EC2 m1.small. Le esportazioni NAS sono su volumi EBS, fonti (tar estratto) su disco effimero.
Quindi eccoci: qualcuno può spiegarmi perché la samba è molto più veloce?
Inoltre: le prestazioni di NFS con il server kernel dovrebbero essere così orribili (sovraperformate dal server NFS GlusterFS) in modalità di sincronizzazione? Qualche idea su come accordare questo?
Grazie L