Je prévois ma nouvelle infrastructure de stockage partagé pour une petite batterie de serveurs Web. Par conséquent, j'ai effectué de nombreux tests avec de nombreux systèmes de fichiers NAS. Ce faisant, j'ai obtenu des résultats inattendus et j'aimerais savoir si quelqu'un ici peut le confirmer.
En bref: Samba est extrêmement plus rapide que NFS et GlusterFS pour les écritures de petits fichiers.
Voici ce que j'ai fait: j'ai exécuté un simple "benchmark rsync" avec beaucoup de fichiers pour comparer les performances d'écriture des petits fichiers. Pour une reproduction plus facile, je l'ai relancé tout à l'heure avec le contenu de l'actuel wordpress tar.gz.
- GlusterFS répliqué 2: 32-35 secondes , charge CPU élevée
- GlusterFS simple: 14-16 secondes , charge CPU élevée
- Client GlusterFS + NFS: 16-19 secondes , charge CPU élevée
- Serveur du noyau NFS + client NFS (synchronisation): 32-36 secondes , très faible charge CPU
- Serveur noyau NFS + client NFS (async): 3-4 secondes , très faible charge CPU
- Samba: 4-7 secondes , charge CPU moyenne
- Disque direct: <1 seconde
Je ne suis absolument pas un gourou de la samba (je pense que mon dernier contact a été avec samba 2.x), donc je n'ai rien optimisé ici - juste une configuration prête à l'emploi (paquet debian / squeeze). La seule chose que j'ai ajoutée "sync always = yes" qui est censé appliquer la synchronisation après l'écriture (mais en voyant ces résultats ..). Sans cela, les tests étaient environ 1 à 2 secondes plus rapides.
Tous les tests ont été exécutés sur la même machine (auto-monté c'est l'exportation NAS), donc pas de retards réseau - performances de protocole pur.
Noeud latéral: En tant que système de fichiers, j'ai utilisé ext4 et xfs. Les résultats ci-dessus sont avec ext4. xfs a amélioré jusqu'à 40% (moins de temps). Les machines sont des instances EC2 m1.small. Les exportations NAS se font sur volumes EBS, sources (goudron extrait) sur disque éphémère.
Alors voilà: quelqu'un peut-il m'expliquer pourquoi la samba est tellement plus rapide?
Aussi: Les performances NFS avec le serveur du noyau sont-elles censées être aussi horribles (surpassées par le serveur NFS GlusterFS) en mode synchronisation? Une idée de comment régler ça?
Merci, L