Wer sein System permanent überwacht, hat den Grundstein dafür gelegt Engpässe zu vermeiden und Fehler frühzeitig zu erkennen. Neben dem Platzhirsch Nagios ... (mehr)

Nagios Core testen

Die ersten drei Tests beschäftigen sich mit dem Standard Nagios Core ohne Patches oder sonstige Maßnahmen zur Performanceverbesserung. Ziel war es, ein besseres Verständniss dafür zu erhalten, welchen Einfluss die oben genannten Parameter auf die Systemleistung haben:

Wie wirkt sich die Anzahl der Checks auf die Leistung aus? Gibt es einen direkten Zusammenhang zwischen der Anzahl der Checks und der CPU-Auslastung oder der Nagios Latency?

Getestet wurde auf einem virtuellen System (ESX als Hypervisor) mit fixen Reservations für CPU und Memory. Konkret stand eine virtuelle CPU mit 1.5 GHz und 512 MB RAM in der VM zur Verfügung. Ausgehend von diesen Hardware-Voraussetzungen wurde die Anzahl der Checks schrittweise erhöht. Auf anfänglich 1000 Checks folgte eine Steigerung auf 1400 und schlussendlich auf 2200 Checks ( Abbildung 3 ).

Abbildung 3: Die Nagios Latency steigt ab einer bestimmten CPU-Auslastung sprunghaft an.

Ein Blick auf die CPU-Auslastung ( Abbildung 4 ) erklärt dieses Verhalten. Solange noch genug CPU-Zeit zur Verfügung steht (gelbe Linie), bleibt die Nagios Latency niedrig. Bei 2200 Checks steigt die CPU Belastung so weit an, dass fast keine Ressourcen verfügbar sind – das Resultat ist der sprunghafte Anstieg der Latency.

Abbildung 4: Die CPU-Auslastung steigt in Stufen mit der Anzahl an Checks immer weiter an.

Im Umkehrschluss würde das bedeuten, dass zwei virtuelle CPUs die Latency bei 2200 Checks sofort wieder sinken lassen müssten. Abbildung 5 bestätigt dies.

Abbildung 5: Die Nagios-Latency sinkt schnell und deutlich ab, sobald zwei CPUs verfügbar sind.

Auswirkungen von Laufzeit und Return Codes

Ein weiterer Faktor, der in der Praxis relevant ist, ist die Ausführzeit für einzelne Checks. Viele Checks werden remote, etwa über SSH oder NRPE (Nagios Remote Plugin Executor) auf anderen Hosts ausgeführt. Dabei ist die CPU-Belastung am Nagios-System meist gering. Die Frage, die beantwortet werden soll, ist, ob die Nagios Latency von der Durchlaufzeit dieser Checks beeinflusst wird. Getestet wurde wieder in derselben Konfiguration wie in den ersten Tests. Neu hinzukam, dass die Skripte nun zwischen 0 und 10 Sekunden wegen eines »sleep()« -Calls warten mussten, bevor sie sich beenden konnten.

Im Vergleich wird aus Abbildung 6 ersichtlich, dass die Ausführzeit einen deutlichen Einfluss auf die Latency hat. CPU-seitig war keine Veränderung messbar.

Abbildung 6: Der Verlauf der Nagios Latency mit einer künstlichen Verzögerung innerhalb der Checks.

Im vorherigen Test gaben alle konfigurierten Checks immer den Status OK zurück, was nicht der Realität entspricht. Daher galt es herauszufinden, welche Auswirkungen Checks auf die Performance des Systems haben, die nicht OK zurückliefern. Weil der Nagios Core in diesem Szenario einige Berechnungen mehr durchzuführen hat, sollte die Performance schlechter sein. Die vorherige Konfiguration wurde übernommen: 2 CPUs, 2200 Checks, alle 60 Sekunden ausgeführt, Verzögerung zwischen 0 und 10 Sekunden. Nun wechselten allerdings zehn Prozent der Checks zwischen »OK« , »Warning« und »Critical« .

Abbildung 7 zeigt eine klare Veränderung gegenüber Abbildung 6 . Die Latency steigt von etwa fünf Sekunden auf einen Wert von durchschnittlich sieben Sekunden.

Abbildung 7: Nagios Latency mit einem Anteil von zehn Prozent Checks, die nicht
Abbildung 8: CPU-Auslastung mit zehn Prozent Checks, die nicht
Abbildung 9: Vergleichstest mit Mod_gearman. Das Modul sorgt für einen extremen Abfall der Latency im Test.

Sehr interessant ist, dass das Schwingverhalten, das bei der Latency in Abbildung 7 zu sehen ist, nicht direkt mit der CPU zusammenhängt. Die CPU-Auslastung liegt zwar fast bei 80 Prozent, aber offensichtlich noch knapp unter der Grenze, die im ersten Test gemessen wurde, sodass die Latency nicht sprunghaft ansteigt. Was lässt sich aus diesen Tests ableiten? Überraschend ist der fehlende direkte Zusammenhang zwischen Nagios-Latency und CPU-Auslastung. Eine voll ausgelastete CPU bewirkt zwar einen sprunghaften Anstieg der Latency, eine hohe Latency muss aber nicht unbedingt mit hoher CPU-Auslastung einhergehen ( Abbildung 8 , Abbildung 9 ).

Ähnliche Artikel

comments powered by Disqus
Einmal pro Woche aktuelle News, kostenlose Artikel und nützliche ADMIN-Tipps.
Ich habe die Datenschutzerklärung gelesen und bin einverstanden.

Konfigurationsmanagement

Ich konfiguriere meine Server

  • von Hand
  • mit eigenen Skripts
  • mit Puppet
  • mit Ansible
  • mit Saltstack
  • mit Chef
  • mit CFengine
  • mit dem Nix-System
  • mit Containern
  • mit anderer Konfigurationsmanagement-Software

Ausgabe /2023