Echtzeitfähigkeit von Linux-Systemen empirisch bestimmen

30. September 2009, 10:59 Uhr |
Diesen Artikel anhören

Fortsetzung des Artikels von Teil 3

Echtzeitfähigkeit von Linux-Systemen empirisch bestimmen

Memory-Manager und Speicherzugriffe:

Eine häufig verwendete Möglichkeit, den Memory-Manager und Speicherzugriffe unter Stressbedingungen zu versetzen, besteht in zyklischen Aufrufen des Tools »calibrator« (http://monetdb.cwi.nl/Calibrator/).

Interrupt-Serviceroutinen:

Möglicherweise blockierende Eigenschaften der Interruptroutinen der installierten Geräte lassen sich am besten mit der jeweiligen I/O-Aktivität provozieren. Bei einer Netzwerkschnittstelle ist zum Beispiel das Flut-Ping-Kommando von einem anderen System im gleichen Netzwerk oder, noch besser, über eine Peer-zu-Peer-Verbindung gut geeignet. Die hohe Anzahl von hierdurch ausgelösten Interrupts lässt sich mit dem Interruptzähler in »/proc/interrupts« verifizieren.

passend zum Thema

File-Manager:

Zum häufigen Aufruf von Funktionen eines File-Managers lassen sich zyklische Aufrufe zur rekursiven Ausgabe des Rootverzeichnisses ausführen, zum Beispiel die Codezeile in Codebeispiel 2.

Standard-Benchmarkprogramme zur Erzeugung von Rechenlast wie zum Beispiel »Unix-Bench Rel. 4«:

Hierdurch werden Perioden mit sehr hoher und sehr häufig wiederkehrender Last in den einzelnen funktionellen Bereichen der CPU und des Kernels wie Speicherverwaltung, I/O, Integer-Arithmetik oder Fließkomma-Arithmetik erzeugt.

Latenzmessung kalibrieren

Vor einer Messung sollte sichergestellt sein, dass das Messsystem auftretende Latenzen auch entdeckt. Zu diesem Zweck eignet sich die Kalibrierung mit einem Treiber, der eine bekannte Latenz des Systems erzeugt. Ein solcher Treiber enthält zum Beispiel die in Codebeispiel 3 dargestellten Funktionsaufrufe und führt damit zu einer künstlichen Latenz für die Dauer der Warteschleife. Da sich aus den oben genannten Gründen die Dauer der Warteschleife nicht genau vorhersagen lässt, erfolgt eine Bestimmung der Schleifendauer innerhalb des Treibers, und diese Dauer wird nach Beendigung der Schleife im System-Logger ausgegeben. Einen solchen Treiber mit dem Namen »blocksys« und dem Userspace-Programm »mklatency« gibt es auf der Webseite www.osadl.org zum Download.

Spezielle Messung: Bestimmung des Ausgangswerts

Die Messung an einem individuellen System verläuft im Prinzip sehr ähnlich wie die oben beschriebene Komplettmessung. Allerdings sind bei der Messung an einem individuellen System nur die – in der Regel relativ begrenzten – Systemkomponenten zu konfigurieren und in das Lastszenario zu integrieren, die im jeweiligen System auch tatsächlich nötig sind. So muss die Messung eines Beispielsystems mit zwei Netzwerkcontrollern, bei dem aber nur eine Netzwerkschnittstelle an der Frontplatte liegt, den zweiten Controller weder initialisieren noch stressen.

Im Gegensatz zur initialen Messung muss die laufende Messung zur Qualitätskontrolle die Hardwarekomponenten zudem nicht mehr regelmäßig in die Messung mit einbeziehen, wenn sichergestellt ist, dass diese unverändert sind. Treiber und Kernel unterliegen hingegen nicht nur einer kontinuierlichen Entwicklung, sondern neue Versionen werden regelmäßig eingespielt und für aktuell auszuliefernde Produkte verwendet. Daher sind nach Software-Updates Tests durchzuführen, ob die zu Beginn festgestellte Echtzeitfähigkeit des Systems erhalten geblieben ist. Diese Tests müssen alle durch das Software-Update betroffenen Komponenten umfassen. Dies geschieht am besten mit dem Programm »cyclictest«, mit den eingebauten Kernellatenz-Histogrammen beziehungsweise mit Diagnosefunktionen im Anwenderprogramm.


  1. Echtzeitfähigkeit von Linux-Systemen empirisch bestimmen
  2. Echtzeitfähigkeit von Linux-Systemen empirisch bestimmen
  3. Echtzeitfähigkeit von Linux-Systemen empirisch bestimmen
  4. Echtzeitfähigkeit von Linux-Systemen empirisch bestimmen
  5. Echtzeitfähigkeit von Linux-Systemen empirisch bestimmen
  6. Echtzeitfähigkeit von Linux-Systemen empirisch bestimmen
  7. Echtzeitfähigkeit von Linux-Systemen empirisch bestimmen

Jetzt kostenfreie Newsletter bestellen!