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