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
la source
Réponses:
Nous utilisons Samba intensivement, et je l'ai toujours trouvé généralement plus rapide que NFS dans presque tous les cas (et je dis presque parce que je ne les ai pas assez comparés).
D'après ce que j'ai vu après quelques captures de paquets, le protocole SMB peut être bavard, mais la dernière version de Samba implémente SMB2 qui peut à la fois émettre plusieurs commandes avec un paquet et émettre plusieurs commandes en attendant un ACK du dernier commande de revenir. Cela a considérablement amélioré sa vitesse, du moins d'après mon expérience, et je sais que j'ai été choqué la première fois que j'ai vu la différence de vitesse également - Dépannage des vitesses de réseau - La vieille enquête
la source