Fieberthermometer

Im ersten Teil dieses Artikels haben wir die gateway-Benchmarks im Überblick vorgestellt. Diesmal zeigen wir, wie ein portabler Unix-Agent die Meßwerte der aktuellen Serverbelastung im Netz als Service zur Verfügung stellt.

Die Server-Benchmarks der gateway haben die Aufgabe, die Leistungsfähigkeit eines Servers unter einer spezifischen Last beziehungsweise einem Lastmix, zum Beispiel aus POP3, FTP oder HTTP, zu bestimmen. Hierzu stehen insgesamt drei Datenquellen zur Verfügung, die sich auch kombiniert zur Auswertung heranziehen lassen.

Zuerst dokumentieren alle in Java simulierten Serviceclients (POP3, FTP, HTTP et cetera) die Zeit, die zwischen "Auftragsvergabe" und vollständiger Erledigung durch den Server verstreicht. Wächst dieser Faktor plötzlich stark an, so ist dies ein Indiz dafür, daß der Server in die Sättigung fährt, also die maximale sinnvolle Systemlast vorliegt. Mathematisch gesehen zeigt eine große Steigung (erste Ableitung) dieses Vordringen in die Sättigung an.

Der im Testnetzwerk mitlaufende Netzwerksniffer auf Basis von Suse Linux 6.0 bietet ebenfalls Anhaltspunkte für das Zeitverhalten zwischen den Clients und dem Server. Hierzu muß man die entsprechenden Netzwerk-Dumps auswerten beziehungsweise eine aktive Probe so aktivieren, daß diese auf bestimmte Anomalien auf dem Netzwerkstrang (TCP/IP-Fehler, bestimmte ICMP-Messages, Netzwerk-Load et cetera) reagiert.

Eine dritte Quelle betrifft den Server selbst, der naturgemäß am meisten über sich selbst "wissen" sollte. Hier läuft ein eigens für den Betrieb der Benchmarks programmierter Systemagent ab, der wichtige Meßdaten bei Bedarf über eine Socket-Verbindung im gesamten Netzwerk anbietet. Optional lassen sich die Meßwerte auch auf der lokalen Festplatte des Servers ablegen und nachträglich auswerten. Für den Betrieb im Rahmen der Benchmarks sind keinerlei Sicherheitsvorkehrungen eingeplant, die den Zugriff auf die Serverdaten einschränken würden.

So zentral der externe Master-Client auch ist, der für alle simulierten Clients und den Ablauf der Benchmarks verantwortlich ist, so essentiell ist der Code, der auf dem Testserver für das Messen und die Weitergabe der Server-"Fieberkurve", also die Weitergabe des aktuellen Systemstatus, verantwortlich ist. Dieser Code muß über einen direkten Zugang zu den allerheiligsten Systemdaten verfügen. Die wichtigste Restriktion im Zusammenhang mit den Benchmarks betrifft dabei die Portabilität: Die Systemprobe sollte in möglichst vielen Systemumgebungen ablauffähig sein und möglichst wenig Aufwand beim Aufsetzen auf eine neue Umgebung verursachen.