Zurück zum Blog

Bestehlen wir Sie? CPU-Steal-Time in der Cloud verstehen

Bestehlen wir Sie? CPU-Steal-Time in der Cloud verstehen

Kunden fragen oft nach der CPU-Steal-Time. Insbesondere diejenigen, die die CPUs stark beanspruchen und für die sie ein wichtiges Leistungskriterium darstellt. Es gibt einige Unterschiede in der Einrichtung und dem Verhalten von CPUs und Kernen zwischen physischen und virtuellen Umgebungen. Selbst zwischen Cloud-Anbietern gibt es Unterschiede bei der Einrichtung, die einen direkten Vergleich auf den ersten Blick erschweren. Aus diesem Grund hielten wir es für nützlich, unseren Kunden einen kurzen Überblick über unsere Einrichtung und CPU-Zuweisungslogik zu geben sowie die häufigsten Ursachen für CPU-Steal-Time zu erklären.

Zunächst einmal für diejenigen, die mit dem Konzept nicht vertraut sind: CPU-Steal-Time ist die Zeit, die Ihre virtuelle CPU in Ihrem Cloud-Server auf die reale physische CPU warten muss, während der Hypervisor damit beschäftigt ist, sie für andere Dinge zu nutzen (wie andere virtuelle Maschinen/Cloud-Server). Dies ist ein großartiger Artikel über die CPU-Steal-Time, der absolut lesenswert ist.

Ein paar Informationen zu unserem CPU-Setup

Das Erste, was man verstehen muss, betrifft die Art und Weise, wie wir Kerne zwischen virtuellen Maschinen auf jedem physischen Compute-Knoten aufteilen, der Ihre Rechenleistung hostet. CPUs und ihre Kerne bei CloudSigma werden gemeinsam genutzt. Mit anderen Worten: Wir weisen den Cloud-Server eines Kunden nicht bestimmten Kernen fest zu. Die CPU-Zeit wird vom Scheduler des physischen Compute-Knotens dynamisch zugewiesen, und alles wird geteilt. Wir glauben, dass dies eine Reihe von Vorteilen für eine insgesamt zuverlässigere Leistung bietet, da der Compute-Knoten im laufenden Betrieb sinnvolle Anpassungen bei der Zuweisung vornehmen kann, um die Last auszugleichen.

In Kombination damit verwenden wir Control Groups (kurz cgroups), um jedem der Cloud-Server genügend CPU-Zeit zu garantieren, entsprechend den Ressourcen, die Sie über die Servergröße festgelegt haben. Am Ende entscheidet der Scheduler, was mit den verbleibenden Ressourcen und cgroups geschieht. Es ist auch erwähnenswert, dass wir eine Reihe spezifischer Kerne reservieren, die außerhalb des Zuweisungsbereichs für die Rechenlasten der Kunden liegen. Wir nutzen diese Kerne, um das Betriebssystem des physischen Hosts auszuführen. Insbesondere reservieren wir zusätzliche Kerne für die Verarbeitung von Netzwerk- und Speicheroperationen. All dies zielt darauf ab, die Stabilität der gesamten Maschine zu erhöhen. Darüber hinaus hilft es, Ihnen als Kunden über die Zeit hinweg ein zuverlässiges Leistungsniveau zu bieten, unabhängig von der Last anderer Kunden.

Die Ursachen für CPU-Steal-Time in einer virtualisierten Umgebung

Im Gegensatz zu einer physischen Umgebung gibt es in einer virtualisierten Umgebung mit mehreren Mandanten mehrere Ursachen und Situationen, in denen CPU-Steal-Time auftreten kann. Dies liegt daran, dass die Dinge in einer solchen Umgebung komplexer sind. Nicht jede dieser Situationen bedeutet tatsächlich, dass Sie nicht die CPU-Zeit erhalten, die Ihnen zusteht. In vielen Fällen können Sie sogar freie CPU-Zyklen über Ihre zugewiesene Größe hinaus nutzen, aber das ist keine Situation, in der Sie CPU-Steal-Time sehen würden. Die drei häufigsten Situationen werden im Folgenden näher beschrieben.

Ihr Cloud-Server ist überlastet
Das kommt vor! Jeder möchte die Kapazität, für die er bezahlt, so weit wie möglich ausschöpfen. Wenn jedoch die Ihrem virtuellen Cloud-Server zugewiesene CPU nicht ausreicht, um die Arbeitslast zu bewältigen, kann es zu CPU-Steal-Time kommen, da sich die Aufgaben in der virtuellen CPU anstauen und in eine Warteschlange eingereiht werden. Wenn dies die Hauptursache für die CPU-Steal-Time ist, besteht die Lösung darin, die Größe des Cloud-Servers anzupassen. Wenn es sich um eine vorübergehende Überlastung handelt, können Sie die Einstellungen getrost unverändert lassen. Sie werden sehen, dass die CPU-Steal-Time verschwindet, sobald Ihre Last sinkt.

Der physische Server, der Ihren Cloud-Server hostet, ist überlastet
Wenn eine Überlastung des Hosts vorliegt, handelt es sich in diesem Fall um einen Fehler unsererseits. Das ist selten, kann aber vorkommen. In diesem Fall nutzen wir die Live-Migration, um virtuelle Maschinen ohne Unterbrechung auf andere physische Compute-Knoten zu migrieren, um die Auslastung wieder auf ein normales Niveau zu senken. Generell halten wir die Hosts weit unter Volllast. Wenn Sie dies also über einen längeren Zeitraum hinweg beobachten, kontaktieren Sie uns bitte. Unser kostenloser Support rund um die Uhr (24/7) kann den physischen Host überprüfen, auf dem Sie sich befinden. Wenn keine Überlastung vorliegt, ist dies unwahrscheinlich die Hauptursache für Ihre CPU-Steal-Time.

Sie verwenden eine kleinere virtuelle Kerngröße
Bei CloudSigma geben wir Ihnen die Möglichkeit, die virtuelle Kerngröße zu definieren, um beispielsweise von mehr CPU-Threads oder mehr kleineren virtuellen Kernen für jede Cloud-Server-Größe zu profitieren. Der Cloud-Server innerhalb des Betriebssystems sieht die Kerngröße immer als die volle physische Größe.

Wenn der physische Kern 2.6GHz hat, Ihre VM aber 4GHz und zwei Kerne aufweist, beträgt jeder virtuelle Kern 2GHz. Sie werden also immer Steal-Time sehen. Das liegt daran, dass Sie einen anteiligen Betrag des gesamten Kerns erhalten und nicht die volle Größe, da die virtuelle Kerngröße kleiner ist. Daher sollten Sie alle Berechnungen der CPU-Steal-Time immer anpassen, um eine kleinere virtuelle Kerngröße zu berücksichtigen, falls Sie diese tatsächlich verwenden. Um dies zu vermeiden, können Sie die volle Kerngröße pro Kern verwenden. Sie können dies tun, indem Sie die virtuelle Kerngröße auf die volle CPU-Kerngröße erweitern (z. B. Intel v4 2.6GHz).

Fazit

Die CPU-Steal-Time in der Cloud ist etwas komplexer als in traditionellen physischen Single-Tenant-Umgebungen. Sie existiert jedoch definitiv immer noch. Die Berichterstattung über die CPU-Steal-Time durch Betriebssysteme hat sich jedoch nicht an die unterschiedlichen Bedingungen angepasst. Dies bedeutet, dass Sie Fehlalarme erhalten können. Wenn Sie CPU-Steal-Time feststellen, bedeutet dies in der Regel, dass ein Ressourcenengpass vorliegt.  Wir hoffen, dass dieser Beitrag Ihnen hilft, die Ursache schnell zu identifizieren und einen weiterhin reibungslosen Betrieb zu gewährleisten.

Viel Spaß beim Computing!

Robert

 

author

Robert Jenkin

Autor · CloudSigma

Preslav Dobrev ist ein kreativer Designer bei CloudSigma und konzentriert sich auf eine konsistente Unternehmensidentität durch traditionelle und innovative Marketingkanäle. Er versteht es meisterhaft, künstlerische Vision mit strategischem Marketing zu verbinden, um wirkungsvolle Markengeschichten zu schaffen.

Kommentare

Noch keine Kommentare. Schreiben Sie den ersten.