SLX-Serverbetrachtungen (bezogen auf Bootzeiten)
Der OpenSLX-Server ist neben dem Netzwerk eine der wichtigen Komponenten, die über die Performance des Gesamtsystems mitbestimmen. Hierzu mal längere Messungen unternommen, siehe auch den Beitrag zu NFS vs. NBD. Das Testsetup bestand aus zwei Räumen mit jeweils 17 Maschinen, die auf zwei große (mit 10 Gbit/s verbundenen) Switches verteilt waren. An einem Switch hing an vier Ports der Server im Bonding. Alles lief mit NFSv3, da NFSv4 noch nicht im Stage3 unterstützt ist. Die Maschinen booteten jeweils blockweise 17 gemeinsam, da über einen Hardware-Video-Switch gesteuert (mit einem Software-Video-Switch ist das nur bedingt möglich, da während des BIOS und PXE-Laufs keine Interaktion besteht). Der Server selbst war mit 16 Cores, 48 GByte und SCSI-RAID großzügig dimensioniert.
Insgesamt ergaben sich folgende Ergebnisse für die Bootzeiten der Clients in ein Ubuntu 10.04:
| Einzelner Client (in einem der beiden Räume, keine sonstige Last) | 18 Sekunden |
| Einzelner Client (in einem der beiden Räume, NFS-Last eine Maschine) | 18 Sekunden |
| Einzelner Client (in einem der beiden Räume, NFS-Last 16 Maschinen) | 18-19 Sekunden |
| 17 Clients (in einem der beiden Räume, keine sonstige NFS-Last) | 22 Sekunden |
| 17 Clients (in anderem Raum, sonstige NFS-Last) | 22-23 Sekunden |
| Einzelner Client (in einem abgesetzten Raum mit Gigabit-Uplink) | 18-19 Sekunden |
| 14 Clients (in einem abgesetzten Raum, mit Gigabit-Uplink) | 25-26 Sekunden |
Im Test handelte es sich beim abgesetzten Raum um einen Pool, an dem 14 Geräte an einem gemeinsamen Gigabit-Switch hingen, der mit einem Gigabit-Uplink an einen der beiden vorne genannten Switches verbunden war. Die NFS-Last wurde durch find /usr -name -exec cat {} >/dev/nulll\; erzeugt. Leider scheint dieses Verfahren nicht wirklich realistische Ergebnisse zu liefern, ebensowenig wie tar -cf /dev/null /usr, da im Vergleich zu anderen Verfahren die Bandbreitenanforderung kleiner bleibt.
Auf dem Server entstand während der gesamten Tests eine maximale Last von 3.X – also weit unter der möglichen Kapazität. Die Spitzentransferrate beim Booten eines Pools mit und ohne Belastung lag bei 250 bzw. 270 MByte/s. Die Differenz hier ist sicherlich eher der Messungenauigkeit geschuldet und zeigt, dass eine bestehende Last (erzeugt duch einen gleichzeitigen Aufruf des oben genannten find ...) auf dem Server keinen besonderen Einfluss hatte, was sich aus den obigen Zahlen auch ablesen lässt. Während des find .. Laufs in einem bzw. beiden der Pools lag die max. Ausgangsleistung des Servers bei 150 bzw. 210 MByte/s. Insgesamt lag die Spitzenausgangsleistung bei 270 MByte/s (theoretische Höchstleistung wäre mit 450 MByte/s zu veranschlagen). Dabei machte es kein Unterschied, ob das NFS-Verzeichnis vom RAID oder aus einem TEMPFS ausgeliefert wurde. Auch fielen durchaus stärker schwankende Empfangsleistungen der Clients auf, die zwischen 800 KByte/s bis 2.8 MByte/s lagen. Dabei spielte die Last auf dem Server keine wirkliche Rolle. Auch hier müsste man sich die Messverfahren nochmal genau ansehen …
Der nächste interessante Test wäre der Vergleich des in die Jahre gekommenen NFSv3 mit dem aktuellen NFSv4, das schon länger im Kernel verfügbar ist. Letzteres soll performanter sein. Derzeit besteht jedoch noch das Problem, dass es sich im Stage3 noch nicht mounten lässt (siehe Ticket).
This entry was posted on Sonntag, November 14th, 2010 at 22:40 and is filed under Allgemeines, de. You can follow any responses to this entry through the RSS 2.0 feed. You can leave a response, or trackback from your own site.
