KVM: Wie hängt die CPU-Auslastung mit Ping zusammen?

0

Ich habe einige Tests durchgeführt, die von Ubuntu KVM-Gast zu Ubuntu KVM-Gast gepingt wurden, und ich habe etwas Interessantes bemerkt, das ich zu verstehen versuche. Ich habe die CPU-Auslastung erhöht, indem ich zusätzliche Gäste gestartet habe, die 99% ihrer eigenen CPU verwendeten.

Was mir auffiel, war, dass eine niedrige CPU-Auslastung schlechtere Ping-Ergebnisse lieferte als eine mittlere CPU-Auslastung. Sobald die CPU-Auslastung zu hoch ist, verschlechtern sich die Ping-Ergebnisse erneut. Warum ist das so? Passiert hinter den Kulissen etwas, das die Ping-Latenz verbessert, wenn die CPU-Auslastung nicht zu niedrig und nicht zu hoch ist?

edit: Nur um zu verdeutlichen, was ich unter "schlechter" verstehe: Niedrige CPU-Auslastung: 0,5ms ping | Mittlere CPU-Auslastung: 0.05-0.1ms ping | hohe CPU-Auslastung: 0,4-0,6 ms Ping

edit: Auch hier versuche ich hauptsächlich zu verstehen, warum eine mittlere CPU-Auslastung zu einer besseren Ping-Latenz führt als eine niedrige CPU-Auslastung.


quelle
Ich würde empfehlen, einige Zahlen zu posten, wenn Sie eine vernünftige Antwort erhalten möchten. Wir haben keine Ahnung, was ein "schlechteres Ping-Ergebnis" ist, und wir wissen auch nicht, wie genau Ihre Ping-Ergebnisse sind (Auflösung variiert).
Führen Sie CMD
fügte einige Zahlen für eine vernünftige Antwort hinzu. Die Hauptfrage ist, welche möglichen Ursachen eine mittlere CPU-Auslastung haben kann, die zu einer kürzeren durchschnittlichen Ping-Umlaufzeit führt als eine niedrige CPU-Auslastung.
Dies sind aus Netzwerk- und Planungssicht sehr niedrige Werte, aus Sicht der CPU-Drosselung hohe Werte, wenn man bedenkt, wie trivial die Aufgabe eines Pings tatsächlich ist. Natürlich wissen wir immer noch nicht, wie viele CPU-Kerne / Threads Sie haben, wie viele CPU-verbrauchende Gäste Sie starten und wie sie CPU-Zyklen brennen. Denken Sie daran, dass Ihr Szenario ein virtuelles Netzwerk umfasst. Ich glaube, Sie sehen eine Kombination aus Netzwerk- und Aufgabenplanungseffekten.
Führen Sie CMD
Höchstwahrscheinlich machen das KVMs. Verstehen Sie zunächst, dass die meisten Hypervisoren einen virtuellen Core niemals direkt mit einem physischen Core verknüpfen, sondern stattdessen alle Cores entsprechend der Gesamtlast der Gäste zeitlich unterteilen. Wenn der Gast jedoch beispielsweise für mehrere Kerne konfiguriert ist, muss der Host in der Lage sein, mehrere physische Kerne für die Verwendung durch den Gast zuzuweisen. Wenn ein Gast größtenteils untätig ist, haben die anderen Gäste Vorrang vor dem CPU-Zugriff. Wenn der Gast untätig wird, muss der Host verschlüsseln, um eine Zeitscheibe über genügend Kerne zu synchronisieren. VMWare ruft diesen CPUReady auf.
Frank Thomas
Fortsetzung Im Falle eines Systems mit mittlerer Nutzung plant der Host bereits Slices über genügend Kerne für den Gast, sodass es zu keiner Verzögerung kommt. Es ist hilfreich, Kerne auf dem Host nicht zu überbuchen, aber selbst dann weisen die meisten Hypervisoren MHz/Time * SMP threadsvirtuelle Kerne zu, anstatt sie zuzuordnen , damit sie bei Bedarf überbuchen können.
Frank Thomas

Antworten:

1

Dies hat sehr wenig mit "ping" per se zu tun und alles was mit dem zugrunde liegenden System zu tun hat.

Damit Ping (oder eine beliebige Internetanwendung) funktioniert, müssen Aufrufe des Internet-Stacks für Software [und Hardware] ausgeführt werden. Wenn die CPU ausgelastet ist, werden weniger Zeit und Ressourcen für die Wartung des Stacks benötigt, wodurch die Latenz erhöht wird.

Davidgo
quelle
Das ist meine Hauptfrage! Mit steigender CPU-Auslastung würde sich die Ping-Latenz verschlechtern. Dies ist jedoch, wie gesagt, nicht ganz der Fall. Während die Ping-Latenz bei einer hohen CPU definitiv am schlechtesten war, verstehe ich nicht, warum die Ping-Latenz bei einer mittleren CPU-Auslastung besser war als bei einer niedrigen CPU. Sollte nach Ihrer obigen Vorstellung eine mittlere CPU-Auslastung nicht zu einer schlechteren Ping-Latenz führen als eine niedrige CPU-Auslastung?
Dies hängt unter anderem davon ab, ob der Prozess-Scheduler und die aktuelle CPU-Geschwindigkeit aktiv sind. Wenn sich ein Laptop beispielsweise im Akkubetrieb befindet und nur wenig genutzt wird, verlangsamt das System die Taktraten, um Strom zu sparen. Wenn das System nicht verwendet wird und der Scheduler ein Bedürfnis nicht erkannt hat, kann es langsamer reagieren, "weil es schläfrig ist" - ähnlich kann eine mäßig verwendete CPU einen Kern haben, der nicht viel tut, was der Handhabung des IP-Stacks zugeordnet werden kann.
Davidgo
Ah ich sehe. Ich kann sehen, wie die Ergebnisse, die ich sehe, aus einer Vielzahl von Quellen stammen können. Ist es möglich, dass es mit einer geringen Last zu tun hat, die zusätzliche Zeit benötigt, um die CPU aufzuwecken (im Gegensatz zur CPU bereits) läuft Vollgas bei mittlerer Last) ..das könnte also die hohe Latenz bei geringerer Last verursachen?