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
quelle
Antworten:
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
quelle