Fieberthermometer

Systemmanagement-Agent

Nach der "richtigen" Anordnung in einer eigenen C-Struktur stehen die Meßdaten entsprechend aufbereitet als ASCII-Werte zur Verfügung. Im Prinzip ist damit bereits die Grundlage für ein ausgewachsenes Netz- beziehungsweise Systemmanagement-System gelegt, da man die Daten der auf den einzelnen Systemen ablaufenden Top-Agents nur mehr erfassen und auswerten muß. (Wir kommen darauf in einem eigenen Artikel durch eine entsprechende fertig ausprogrammierte Lösung noch zurück).

Das modifizierte Top läuft als endloser "Dämon"-Prozeß mit Namen "Smartprobe". Externe Prozesse können die Meßdaten über einen voreingestellten Port abfragen und auswerten. Zudem lassen sich die Daten auf der lokalen Festplatte abspeichern. Hierzu verfügt der Client derzeit über folgende Kommandos:

- GET_ALL: Alle Meßdaten,

- GET_MEM: Speicherparameter,

- GET_SWAP: Swap-Parameter,

- GET_CPU: Prozessorparameter,

- GET_LOAD: Systemauslastung,

- GET_PROC: Prozeßparameter,

- PUSH_CLK: automatischer Push-Zyklus,

- SET_LOAD: Serverbasislast einstellen,

- DISCONNECT: Thread beenden,

- QUIT: Dämon beenden.

Damit ist das Grundgerüst für die Weitergabe bestimmter Systemstati gelegt. Folgende Meßdaten werden in der derzeit entwickelten ersten Version von Smartprobe zur Verfügung gestellt:

- Systemauslastung (aktuell, 5 Minuten, 15 Minuten),

- CPU-States (USER, SYSTEM, NICE, IDLE),

- Speicherstatus (verfügbar, derzeit genutzt, derzeit verfügbar, shared, Puffer),

- Auslagerungsdateien (verfügbar, derzeit genutzt, derzeit verfügbar).

Damit steht eine Reihe sehr interessanter Daten zur Verfügung, die einen guten Überblick über den Systemstatus vermitteln. Mit dem Kommando PUSH_CLK kann man angeben, ob der Dämon von sich aus Daten in regelmäßigen Abständen senden (hierbei gilt das letzte GET-Kommando) und in welchen Abständen (in Millisekunden) dies erfolgen soll.

DISCONNECT dient dazu, die aktuelle Serververbindung wieder zu beenden und den entsprechenden Thread freizugeben. Mit QUIT schließlich beendet man den kompletten Dämon-Prozeß.

Eine Sonderstellung nimmt das Kommando SET_LOAD ein. Dieses dient dazu, eine spezifische dynamische Serverlast zu erzeugen, um auf dem Server eine Grundlast aufzubauen, die beispielsweise die vom Benchmark nicht erfaßte Serveraktivitäten simulieren soll. Diese Grundlast wird in Prozent angegeben und führt dementsprechend dazu, daß für jeden Server andere Arbeitsparameter gelten, um diese Last zu erzeugen. Der Agent stellt nun in einer Regelschleife die gewünschte Last ein und meldet den Vollzug an den Client zurück. Danach können die Testläufe beginnen.

Weil ein sehr leistungsfähiges System im Vergleich zu einem Einsteigersystem bei der gleichen Grundlast bereits eine Menge Arbeiten so nebenbei erfüllen kann, geht die insgesamt während der Testläufe absolut erzeugte "Arbeit" auf dem Server als zusätzlicher multiplikativer Faktor in das Endergebnis ein.

Das Programm Smartprobe wird im Zuge der durchgeführten Server-Benchmarks an die zur Verfügung stehenden Systeme angepaßt. Je nach System gilt es, entweder auf die bereits zur Verfügung stehenden Module des Pakets Top zurückgreifen, diese zu verändern oder gänzlich neue Wege einzuschlagen. Dies dürfte vor allem für Multiprozessor-Maschinen gelten. Auch der Support der Benchmarks unter Windows NT macht eine Neuprogrammierung dieses Codeteiles für diese Plattform notwendig.

Wie bereits angedeutet, nutzt der Systemagent Smartprobe bereits bestehende Codefragmente des frei verfügbaren Admintools Top. Dieses Tool ist so aufgebaut, daß das Grundgerüst bestehend aus den zentralen und für alle Plattformen gleichen C-Quelltextdateien top.c, display.c, utils.c mit einer maschinenabhängigen Version der Datei machine.c harmoniert. In machine.c findet sich also der Code, der aus den unterstützten Systemen die Systemparameter entnimmt und diese in einer weitestgehend standardisierten Form übergibt. Top - und damit auch die Grundversion von Smartprobe - unterstützen eine große Auswahl von Betriebssystemvarianten (Kasten "Vielfalt für Top"):