NAS-Leistung: NFS vs Samba vs GlusterFS

31

Ich plane meine neue gemeinsam genutzte Speicherinfrastruktur für eine kleine Webserverfarm. Deshalb habe ich viele Tests mit vielen NAS-Dateisystemen durchgeführt. Auf diese Weise habe ich einige unerwartete Ergebnisse erhalten und möchte wissen, ob jemand hier dies bestätigen kann.

Kurz gesagt: Samba ist für kleine Schreibvorgänge erheblich schneller als NFS und GlusterFS.

Folgendes habe ich getan: Ich habe einen einfachen "rsync-Benchmark" mit vielen Dateien durchgeführt, um die Schreibleistung für kleine Dateien zu vergleichen. Zur einfacheren Wiedergabe habe ich es gerade mit dem Inhalt des aktuellen WordPress-Tar.gz erneut ausgeführt.

  • GlusterFS replizierte 2: 32-35 Sekunden , hohe CPU-Auslastung
  • GlusterFS single: 14-16 Sekunden , hohe CPU-Auslastung
  • GlusterFS + NFS-Client: 16-19 Sekunden , hohe CPU-Auslastung
  • NFS-Kernel-Server + NFS-Client (Synchronisation): 32-36 Sekunden , sehr geringe CPU-Belastung
  • NFS-Kernel-Server + NFS-Client (asynchron): 3-4 Sekunden , sehr geringe CPU-Belastung
  • Samba: 4-7 Sekunden , mittlere CPU-Auslastung
  • Direktdatenträger: <1 Sekunde

Ich bin absolut kein Samba-Guru (ich glaube, mein letzter Kontakt war mit Samba 2.x), also habe ich hier nichts optimiert - nur eine Out-of-the-Box-Konfiguration (Debian / Squeeze-Paket). Das einzige, was ich hinzugefügt habe, ist "sync always = yes", das die Synchronisation nach dem Schreiben erzwingen soll (aber diese Ergebnisse sehen ..). Ohne sie waren die Tests ungefähr 1-2 Sekunden schneller.

Alle Tests wurden auf demselben Computer ausgeführt (selbst gemountet, NAS-Export), sodass keine Netzwerkverzögerungen auftreten - reine Protokollleistung.

Seitenknoten: Als Dateisystem habe ich ext4 und xfs verwendet. Die obigen Ergebnisse sind mit ext4. xfs schnitt um bis zu 40% (weniger Zeit) besser ab. Die Maschinen sind EC2 m1.small Instanzen. NAS-Exporte erfolgen auf EBS-Volumes, Quellen (extrahierter Teer) auf kurzlebigen Datenträgern.

Also los geht's: Kann mir jemand erklären, warum Samba so viel schneller ist?

Außerdem: Soll die NFS-Leistung mit dem Kernel-Server im Synchronisationsmodus so schlecht sein (übertroffen vom GlusterFS-NFS-Server)? Irgendeine Idee, wie man das abstimmt?

Danke, L

Linus Ardberk
quelle
Vergessen: NFS-Kennzahlen sind das Beste eines Paares, bei dem ich mit rsize, wsize, noatime, noac, udp und tcp herumgespielt habe.
Linus Ardberk
3
+1 für Forschung und Benchmarks!
Bigbio2002,
1
Wir haben bei der Entwicklung und beim Testen von SoftNAS die gleichen Unterschiede in der CIFS- und der NFS-Leistung festgestellt. Ich kann bestätigen, dass asynchrones NFS viel schneller ist als synchrones NFS, und Samba verdrängt NFS für die Benchmarks, die wir mit der ATTO-Benchmark-Software ausgeführt haben.
3
Übrigens, haben Sie zwischen den Tests jeden Computer neu gestartet, um den Lesecache des Datenträgers zu leeren?
Matt

Antworten:

5

Wir verwenden Samba ausgiebig und ich habe immer festgestellt, dass es in fast allen Fällen schneller als NFS ist (und ich sage es nur fast, weil ich sie nicht genug verglichen habe).

Wie ich nach ein paar Paketerfassungen gesehen habe, kann das SMB-Protokoll gesprächig sein, aber die neueste Version von Samba implementiert SMB2, das sowohl mehrere Befehle mit einem Paket als auch mehrere Befehle ausgeben kann, während auf ein ACK vom letzten gewartet wird befehle zurückzukommen. Zumindest meiner Erfahrung nach hat sich dadurch die Geschwindigkeit erheblich verbessert, und ich war schockiert, als ich den Geschwindigkeitsunterschied auch zum ersten Mal sah - Fehlerbehebung bei Netzwerkgeschwindigkeiten - Die uralte Anfrage

Univ426
quelle