5.5.4. Zuweisen eines Shared Prozessor Pools

Um die Begrenzung der Prozessor-Auslastung durch einen Shared Prozessor Pool zu demonstrieren haben wir auf 2 LPARs ein kleines Benchmark-Programm parallel gestartet, siehe Bild 5.13. Beide LPARs sind mit 4 virtuellen Prozessoren, einem Entitlement von 0.4 und einer Gewichtung von 100 konfiguriert:

$ lpar lsproc lpar1 lpar2
            PROC         PROCS           PROC_UNITS                        UNCAP   PROC   
LPAR_NAME  MODE    MIN  DESIRED  MAX  MIN  DESIRED  MAX  CURR_SHARING_MODE WEIGHT  POOL
lpar1      shared  1    4        8    0.1  0.4      2.0  uncap             100  DefaultPool
lpar2      shared  1    4        8    0.1  0.4      2.0  uncap             100  DefaultPool
$

Auf beiden LPARs wurde in etwa zur gleichen Zeit das gleiche Benchmark-Programm gestartet. Der Graphik in Bild 5.13 kann man entnehmen das beide LPARs zusammen bis zu 8 komplette Prozessoren (Cores) auslasten.

Processor utilization by 2 LPARs without shared processor pool
Bild 5.13: Prozessor-Auslastung durch 2 LPARs ohne Shared Prozessor Pool

Durch Verwendung eines Shared Prozessor Pools soll die Prozessor-Auslastung der beiden LPARs auf maximal 2 Prozessoren (Cores) beschränkt werden. Hierzu konfigurieren wir den bisher nicht benutzten Pool SharedPool02 mit einer maximalen Pool-Kapazität von 2 Prozessoren (Cores) und benennen den Pool gleichzeitig um in benchmark:

$ ms chprocpool ms11 SharedPool02 new_name=benchmark max_pool_proc_units=2
$

Insgesamt haben wir damit die folgenden Shared Prozessor Pools:

$ ms lsprocpool ms11
MS_NAME  PROCPOOL     ID  EC_LPARS  RESERVED  PENDING  ENTITLED  MAX
ms11  DefaultPool  0   1.20      -         -        1.20      -
ms11  testpool     1   0.00      0.00      0.00     0.00      2.00
ms11  benchmark    2   0.00      0.00      0.00     0.00      2.00
$

Als nächstes weisen wir den beiden LPARs von oben den Shared Prozessor Pool benchmark zu. Das Kommando hierfür ist „lpar chprocpool“ (change processor pool):

$ lpar chprocpool lpar1 benchmark
$ lpar chprocpool lpar2 benchmark
$

Bei dem Kommando „ms lsprocpool“ können durch Verwendung der Option „-l“ (list LPARs) die einem Pool zugewiesenen LPARs angezeigt werden:

$ ms lsprocpool -l ms11
               PROCPOOL           LPAR                PROCPOOL       
MS_NAME  NAME         ID  NAME   ID  EC    RESERVED  ENTITLED  MAX
ms11  DefaultPool  0   lpar3  5   0.40  -         -         -
ms11  DefaultPool  0   -      -   0.40  -         0.40      -
ms11  testpool     1   -      -   0.00  0.00      0.00      2.00
ms11  benchmark    2   lpar1  3   0.40  -         -         -
ms11  benchmark    2   lpar2  4   0.40  -         -         -
ms11  benchmark    2   -      -   0.80  0.00      0.80      2.00
$

In der Ausgabe für den Shared Prozessor Pool benchmark kann man sehen das es 2 zugeordnete LPARs gibt, lpar1 und lpar2, und das diese jeweils ein Entitlement von 0.40 besitzen, was in der Summe ein Entitlement von 0.80 macht. Der Shared Prozessor Pool hat eine maximale Pool-Kapazität von 2.00 (Spalte MAX).

Wir wiederholen den Benchmark-Lauf auf beiden LPARs. Die resultierende Prozessor-Auslastung ist in Bild 5.14 gezeigt:

Processor utilization by 2 LPARs with shared processor pool
Bild 5.14: Prozessor-Auslastung durch 2 LPARs mit Shared Prozessor Pool

Man sieht deutlich das die maximale Pool-Kapazität (rote Linie) nicht überschritten wird. Die beiden LPARs bekommen jeweils im Durchschnitt ca 1.0 Processing-Units. Deutlich zu sehen ist auch das die Laufzeit des Benchmarks jetzt deutlich zugenommen hat.

Hinweis: Die Zuordnung einer LPAR zu einem Shared Prozessor Pool läßt sich auch ohne aktive RMC-Verbindung der LPAR zu den HMCs ändern.