Im Normalfall ist die Anzahl zugeschalteter realer CPUs in einem CPU-Pool kleiner als die Summe der zugeschalteten virtuellen CPUs aller laufenden VMs (Zustand RUNNING), die diesem CPU-Pool zugeordnet sind. In diesem Fall bringt der Hypervisor eine virtuelle CPU auf einer realen CPU aus dem CPU-Pool nach einem Zeitscheiben-Verfahren zum Ablauf.
In den Informationskommandos von VM2000 wird dieses Scheduling-Verfahren mit TS
(Time Slicing) bezeichnet.
Diese CPU-Zuordnung nutzt die zur Verfügung stehenden realen CPUs optimal, wenn eine direkte CPU-Zuordnung nicht möglich ist.
Ablaufbereite virtuelle CPUs aller VMs des gleichen CPU-Pools warten auf die CPU-Vergabe durch den VM2000-Hypervisor.
Steigt die Zahl der zugeschalteten realen CPUs im Vergleich zur Anzahl virtueller CPUs (z.B. durch Rekonfiguration oder durch Beenden einer VM) auf die nötige Zahl, so wechselt VM2000 automatisch in das Verfahren der festen CPU-Zuteilung.
Die CPU-Zuteilung im Zeitscheibenverfahren ist zweistufig:
Auswahl der VM-Gruppe oder der (Einzel-)VM
Auswahl der virtuellen CPU einer VM dieser VM-Gruppe oder der (Einzel-)VM zum Ablauf auf einer freien realen CPU aus dem zugeordneten CPU-Pool
Die Auswahl der VM-Gruppe oder der (Einzel-)VM wird nach folgenden Gesichtspunkten getroffen (siehe auch Abschnitt „Verteilung der CPU-Leistung auf die VMs planen"):
CPU-Quote (
CPU-QUOTA
)
Je größer die CPU-Quote ist, umso eher wird die VM-Gruppe/(Einzel-)VM ausgewählt.in der unmittelbaren Vergangenheit verbrauchte CPU-Zeit (CPU-Intensität)Hierbei wird nicht die absolute CPU-Zeit nach dem Starten der Gastsysteme bewertet, sondern die CPU-Zeit, die in einem begrenzten Zeitintervall verbraucht wurde. Diese CPU-Intensität einer VM-Gruppe/(Einzel-)VM wird vom VM2000-Hypervisor berechnet und einer periodischen Alterung unterzogen. Die CPU-Intensität ist abhängig von der Last der VM-Gruppe/(Einzel-)VM.
maximale CPU-Leistungsaufnahme (
MAX-CPU-UTILIZATION
)
Wenn die Obergrenze der CPU-Leistungsaufnahme der VM-Gruppe/(Einzel-)VM erreicht ist, werden die virtuellen CPUs der VM-Gruppe/(Einzel-)VM solange nicht zum Ablauf gebracht, bis die Obergrenze (durch Alterung der CPU-Intensität) unterschritten wird.die VM-Gruppe wird als Einheit betrachtet
Wenn eine VM der VM-Gruppe den ihr zugedachten CPU-Anteil nicht ausschöpft, dann werden die übrigen VMs der VM-Gruppe bei der CPU-Zuteilung gegenüber den VMs, die nicht dieser VM-Gruppe zugeordnet sind, automatisch bevorzugt. Die CPU-Intensität der VM-Gruppe wirkt in diesem Fall stärker als die CPU-Intensität der Mitglieds-VM („Lastausgleich innerhalb einer VM-Gruppe“).
CPU-Affinität
Im Zeitscheibenverfahren strebt VM2000 beim Scheduling an, dass eine virtuelle CPU beim nächsten Scheduling-Vorgang auf der gleichen realen CPU zum Ablauf kommt. Dieses Vorgehen wird als „CPU-Affinität der virtuellen CPU zu einer realen CPU“ bezeichnet. Es verbessert die Leistung der Server Unit unter VM2000 bei Hochlastbetrieb.
Vorrangiges Ziel bleibt aber die Optimierung der Antwortzeit, d.h.:
kein IDLE-Zustand für eine reale CPU, solange eine virtuelle CPU des CPU-Pools ablaufbereit ist
plangemäße Verteilung der CPU-Leistung der realen CPUs des CPU-Pools auf die virtuellen CPUs.
Größe der Zeitscheibe
Die Größe der Zeitscheibe wird für jede VM von VM2000 dynamisch im Intervall von 0,1 bis 8,0 Millisekunden festgelegt. VMs mit einer „sehr kleinen“ CPU-Quota erhalten dann auch eine kleinere Zeitscheibe.
Die Größe der Zeitscheibe wird bei Änderung des effektiven CPU-Anteils der VM (EFF-Q
, siehe "Verteilung der CPU-Leistung auf die VMs planen") neu berechnet.
Beispiel
Zeitscheibengröße für eine Bi-VM mit EFF-Q=0,5
auf einer Server Unit mit 4 CPUs:
0,5 * 4 (reale CPUs) / 2 (virtuelle CPUs) = 1,0 ms
Ab EFF-Q = 4,00
hätte die VM die bisherige Zeitscheibe von 8 ms.
Für EFF-Q < 0,05
ist ein Scheduling alle 100 ms nicht mehr garantiert.
/SHOW-VM-STATUS INFORMATION=*SCHEDULE
gibt im VM-spezifischen Informationsblock, Ausgabefeld TIME SLICE DEF
, die derzeit eingestellte Größe der Zeitscheibe für die VM aus, siehe "SHOW-VM-STATUS (Messwerte von VM2000 ausgeben)".
Es ist Aufgabe des VM2000-Administrators dafür zu sorgen, dass der effektive (EFF-Q) und damit der aktuelle (CUR-Q) CPU-Anteil der VM hoch genug ist, dass die VM genügend oft, i.d.R. mindestens einmal pro Sekunde, die Kontrolle über die CPU erhält (siehe dazu "Berechnung des effektiven CPU-Anteils einer VM" und "Ausgabe der aktuellen Plan- und Messwerte für den CPU-Anteil der VMs" im Abschnitt "Verteilung der CPU-Leistung auf die VMs planen").