Ich komme relativ spät zur Virtualistion-Party, also musst du mir vergeben, wenn dies eine offensichtliche Frage ist.
Wenn ich einen Server mit 12 Kernen zur Verfügung habe, hat jeder KVM-Gast Zugriff auf alle 12 Kerne? Ich verstehe, dass KVM den Linux-Scheduler verwendet, aber hier endet mein Verständnis von "Was passiert als nächstes?".
Mein Grund für die Frage ist, dass die ungefähr 10 verschiedenen Aufgaben, die wir in KVM-Gästen ausführen möchten (zum Zwecke der Isolation, um Upgrades zu erleichtern), nicht 100% der Zeit einen einzelnen Kern verwenden. Auf dieser Basis erscheint dies verschwenderisch Sie müssen jedem Gast 1 virtuelle CPU zuweisen - wir haben von Anfang an keine Kerne mehr und einen "vollen", inaktiven Server, der angezeigt wird.
Anders ausgedrückt: Unter der Annahme meiner obigen Beschreibung entspricht 1 virtuelle CPU tatsächlich 12 physischen Kernen in Bezug auf die Verarbeitungsleistung? Oder funktioniert das nicht so?
Danke vielmals
Steve
Eine virtuelle CPU ist ein Thread im qemu-kvm-Prozess. qemu-kvm ist natürlich multithreaded.
Wenn Sie Prozesse nicht an bestimmte CPUs anheften, weist der Systemplaner die Thread-CPU-Zeit von den verfügbaren Kernen zu. Dies bedeutet, dass jede vCPU CPU-Zyklen von jedem physischen Kern erhalten kann, sofern sie nicht speziell an bestimmte Kerne angeheftet ist.
quelle
Ich empfehle zu überprüfen, welche vCPU Ihrer VM zuweisen, die Ihnen die beste Leistung bietet. Passen Sie auch Ihre Arbeitslast an, dh CPU-gebunden oder E / A-gebunden, dann stehen zahlreiche kostenlose Benchmarking-Tools zur Verfügung, mit denen Sie Ihre Leistung überprüfen können, z. B. Apache Bechmark für E / A-gebundenen Betrieb und John the Ripper für CPU-gebundenen Betrieb. Sobald Sie festgelegt haben, welche vCPU-Zuweisung Ihre VM am besten bietet, können Sie andere VMs verteilen oder konfigurieren. Weil es negative Auswirkungen auf die Leistung gibt, haben wir uns nicht um vCPU gekümmert.
Wenn Sie beispielsweise einen Host mit 4 Kernen haben und eine VM ausführen und ihr eine vCPU zuweisen möchten, ist die Leistung am niedrigsten, da nur ein Kern der 4 Kerne verwendet wird und der Rest 3 Kerne nicht gleichzeitig nutzen. Da der Virtual Machine Monitor (VMM) oder Hypervisor die interne Last der VM nicht kennt. Sie erhalten den maximalen Durchsatz, wenn Sie 4 VCPU zuweisen. In diesem Fall wird der gesamte Kern des Hosts gleichzeitig verwendet, wenn Ihre Workload über mehrere Threads verfügt. Wenn Sie einen Kern weiter erhöhen, dh mehr als 4 vCPUs zuweisen, können Sie eine Leistungsverschlechterung feststellen. Es ist nur gut, wenn Sie mehr virtuelle VM haben und Sie sich Sorgen machen, wenn eine der VMs auf einen anderen Server migriert oder ausgeschaltet wird, dann wird immer noch der gesamte Kern verwendet, andernfalls wird es verschwendet, wenn nicht die Gesamtzuordnung konfiguriert wird.
quelle