Your Browser is not longer supported

Please use Google Chrome, Mozilla Firefox or Microsoft Edge to view the page correctly
Loading...

{{viewport.spaceProperty.prod}}

VM2000-Scheduling (/390-Server)

Beim Scheduling einer VM unter VM2000 bringt der VM2000-Hypervisor eine ablaufbereite virtuelle CPU einer VM auf einer freien realen CPU zum Ablauf. Für das Scheduling benutzt VM2000 zum Ablaufzeitpunkt einer VM zwei unterschiedliche Verfahren:

  • CPU-Zuteilung im Zeitscheibenverfahren (siehe unten)

  • Feste CPU-Zuordnung (Dedizierte CPUs, siehe "Feste CPU-Zuordnung" unten)

Dabei wird die CPU-Leistung des Servers abhängig von den gewählten Einstellungen für die VMs optimal auf die ablaufbereiten virtuellen Maschinen verteilt.

Auf x86-Servern übernimmt der Xen-Hypervisor das Scheduling. Er verwendet dabei auch ein Zeitscheibenverfahren, das aber von VM2000 nicht beeinflusst wird. Die VM-spezifischen Steuergrößen Multiprozessorgrad, CPU-Quote und Begrenzung der CPU-Leistungsaufnahme stehen auch hier zur Verfügung.

CPU-Zuteilung im Zeitscheibenverfahren

Im Normalfall ist die Anzahl zugeschalteter realer CPUs in einem CPU-Pool kleiner als die Summe der zugeschalteten virtuellen CPUs aller laufenden VMs, die diesem CPU-Pool zugeordnet sind. VM2000 bringt eine virtuelle CPU auf einer realen CPU aus dem CPU-Pool nach einem Zeitscheiben-Verfahren zum Ablauf.

Die maximale Größe der Zeitscheibe wird für jede virtuelle CPU einer 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 maximale Größe der Zeitscheibe wird auf den aktuellen BS2000-Servern nur in wenigen Fällen erreicht. Zumeist wird eine Zeitscheibe dadurch beendet, dass die virtuelle CPU der VM in den unterbrechbaren Wartezustand ("Idle") übergeht.

Der VM2000-Administrator kann über VM-spezifische Steuergrößen Einfluss auf die Verteilung der CPU-Leistung nehmen, siehe "VM-spezifische Steuergrößen" unten. Daneben verbessert VM2000 die Performance, z.B. durch die so genannte CPU-Affinität, siehe "CPU-Affinität" unten.

Die Scheduling-Priorität der einzelnen Gastsysteme errechnet sich aus den vorgegebenen CPU-Quoten und der in jüngster Vergangenheit verbrauchten CPU-Zeit.

VM-spezifische Steuergrößen

Die performance-relevanten Steuergrößen für eine VM im Zeitscheibenverfahren sind:

Der Zeitverlauf, in dem ein Gastsystem den ihm zugewiesene Anteil an der CPU-Leistung aufnehmen kann, hängt sehr stark vom Nutzungsgrad der VM2000-Zeitscheibe ab, und zwar vom eigenen und von dem der anderen Gastsysteme. Dieser Nutzungsgrad ist bei CPU-intensiven Lasten hoch, bei Ein-/Ausgabe-intensiven Lasten niedrig.

Nutzt ein Gastsystem die ihm zustehende VM2000-Zeitscheibe nicht voll aus, so wirkt sich dies auf das Ein-/Ausgabe-Zeitverhalten der anderen Gastsysteme günstig aus.
Bei einer Multiprozessor-VM versucht VM2000 den nicht genutzten Anteil der CPU-Leistung einer virtuellen CPU vorrangig auf die anderen virtuellen CPUs der VM zu verteilen.

Wird dagegen von einem Gastsystem die Zeitscheibe voll ausgenutzt, so kann es vor allem für Gastsysteme, deren Last fast nur aus Ein/Ausgabe-intensiven Tasks besteht, zu einer deutlichen Verlängerung der Ein-/Ausgabezeiten kommen. Mögliche Maßnahmen sind dann:

/SHOW-VM-STATUS INFORMATION=*SCHEDULE informiert über den mittleren Wert der genutzten Zeitscheibe eines Gastsystems. Dabei wird die Wartezeit bis zur Aktivierung der virtuellen CPU als Maß für die "Dehnung der VM" ausgegeben.

CPU-Anteil einer VM

VM2000 gibt in den Informationskommandos verschiedene CPU-Quoten für eine VM oder VM-Gruppe aus, mit denen der VM2000-Administrator die geplante und aktuelle Verteilung der CPU-Leistung beobachten kann:

  • CPU-Q (CPU-Quote, /SHOW-VM-ATTRIBUTES/-RESOURCES)
    ist die bei /CREATE-VM oder /MODIFY-VM-ATTRIBUTES eingestellte
    (MEMBER-)CPU-QUOTA der VM

  • EFF-Q (effektive CPU-Quote, /SHOW-VM-ATTRIBUTES/-RESOURCES INFORMATION=*CPU)
    ist die normierte CPU-Quote der VM unter Berücksichtigung der Randbedingungen Multiprozessorgrad, Leistungsbegrenzung der VM und CPU-Pools
    (Summe der normierten CPU-Quoten aller eingerichteten VMs = 100%). EFF-Q zeigt den langfristig zu erwartenden CPU-Anteil der VM oder VM-Gruppe bei CPU-intensiver Last in allen Gastsystemen und wenn alle realen und virtuellen CPUs zugeschaltet sind.

  • CUR-Q (aktuelle CPU-Quote, /SHOW-VM-STATUS)
    ist die normierte CPU-Quote der VM unter Berücksichtigung der Randbedingungen Multiprozessorgrad, Leistungsbegrenzung der VM und CPU-Pools
    (Summe der normierten CPU-Quoten aller laufenden VMs = 100%).
    CUR-Q zeigt den aktuell zu erwartenden CPU-Anteil der VM oder VM-Gruppe bei CPU-intensiver Last in allen Gastsystemen und in Bezug auf die aktuell zugeschalteten realen und virtuellen CPUs.

Leistungsbegrenzung einer VM

Wenn eine VM oder eine VM-Gruppe nie mehr als einen bestimmten Prozentsatz der CPU-Leistung des Servers erhalten soll (auch nicht bei freien CPUs), dann kann dies durch den Parameter MAX-CPU-UTILIZATION erreicht werden. Eine begrenzte CPU-Leistung kann z.B. im Rahmen von Service-Levels nötig werden. Der Parameter ermöglicht die Begrenzung überhöhter CPU-Leistungsaufnahme durch ein Gastsystem mit CPU-intensiver Last.

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. CPU-Caches und Initialisierungsdaten der VM bleiben erhalten und reduzieren den indirekten Overhead. Vorrangiges Ziel bleibt aber die Optimierung der Antwortzeit.

Feste CPU-Zuordnung (Dedizierte CPUs)

Um dedizierte CPUs zu nutzen, muss die Anzahl zugeschalteter realer CPUs in einem CPU-Pool mindestens so groß sein wie die Summe der zugeschalteten virtuellen CPUs aller laufenden VMs, die diesem CPU-Pool zugeordnet sind. Ist dies der Fall, ordnet VM2000 automatisch jeder virtuellen CPU einer VM in diesem CPU-Pool genau eine reale CPU fest zu.

Der VM2000-Administrator kann in diesem Fall mit dem VM-Attribut VM-ACTIVE-IDLE noch bestimmen, ob eine VM auch dann die Kontrolle über eine reale CPU behält, wenn die darauf ablaufende virtuelle CPU der VM untätig ist (unterbrechbarer Wartezustand, "Idle"), siehe "CPU-Pools".