5.1.2. Wegnehmen von dedizierten Prozessoren

Auch für das Wegnehmen von dedizierten Prozessoren im laufenden Betrieb ist eine aktive RMC-Verbindung zu den HMCs erforderlich. Es können nur Prozessoren weggenommen werden, wenn die verbleibende Anzahl der dedizierten Prozessoren größer oder gleich der minimalen Anzahl von dedizierten Prozessoren ist.

Das Wegnehmen von Prozessoren geschieht, analog dem Hinzufügen, mit dem entsprechenden Kommando „lpar rmprocs“ (remove processors). Allerdings muß das Wegnehmen von Prozessoren nicht in allen Fällen funktionieren. Um dies zu demonstrieren, haben wir auf der AIX-LPAR aix02 aus dem letzten Beispiel einige Prozesse besonders präpariert. Der Versuch einen dedizierten Prozessor wegzunehmen scheitert mit einer langen Fehlermeldung (1298 Zeilen!):

$ lpar rmprocs aix02 1
hmc01: chhwres -m ms06 -r proc  -o r -p aix02 --procs 1
ERROR: remote HMC command returned an error (1)
StdErr: HSCL294F The dynamic removal of processing resources failed: The operation to remove processing has failed on partition aix02. The requested amount of processing to be removed is 1 and the completed amount is 0.
StdErr: The OS standard output is:

StdErr: Invoking update_odm_smt
StdErr: Updated ODM smt_enabled for proc16 with state=true rc: 0
StdErr: smt_failures= 0
StdErr: remove_a_cpu failed! rc=1
StdErr:
StdErr: DR_TOTAL_RESOURCES=0
StdErr: ..cleanup_and_exit. rc=1
StdErr:
StdErr: The OS standard error is:
StdErr:
StdErr: 0930-033 Resource 0x10 is busy and cannot be released.
StdErr:
StdErr:
StdErr:
StdErr:
StdErr: The OS return code is 1.Please issue the lshwres command to list the processing resources of the partition and to determine whether or not its pending and runtime processing values match. If they do not match, problems with future processing-related operations on the managed system may occur, and it is recommended that the rsthwres command to restore processing resources be issued on the partition to synchronize its pending processing value with its runtime processing value.
$

(Die Fehlermeldung ist hier nur in Ausschnitten abgebildet.)

Der Fehlermeldung ist zu entnehmen das der Versuch den Prozessor proc16 wegzunehmen gescheitert ist, da der Prozessor beschäftigt (busy) ist: „0930-033 Resource 0x10 is busy and cannot be released.“. Das Problem ist an dieser Stelle, das es Prozesse gibt, die an einen festen Prozessor gebunden wurden:

aix02 # ps -eo THREAD |grep -vw -- -1
    USER      PID     PPID    TID S  CP PRI SC    WCHAN        F     TT BND COMMAND
root 15597746 17104922      - A   0  60  1 f1000a01508a3bb0   200001  pts/0  16 sleep 3600
root 20709576 17104922      - A   0  60  1 f1000a0150a523b0   200001  pts/0   8 sleep 3600
root 22741088 17104922      - A   0  60  1 f1000a01508a9fb0   200001  pts/0   0 sleep 3600
aix02 #

Die Ausgabe des ps-Kommandos zeigt, das der Prozeß 15597746 an den Prozessor 16 (Spalte BND für bind processor in der Ausgabe) gebunden ist. D.h. der Prozeß darf nur auf diesem Prozessor laufen, was ein Wegnehmen des Prozessors verhindert!

Die Bindung lässt sich aber sehr leicht mit dem AIX-Kommando bindprocessor wieder aufheben:

aix02 # bindprocessor -u 15597746
aix02 #
aix02 # ps -eo THREAD |grep -vw -- -1
    USER      PID     PPID    TID S  CP PRI SC    WCHAN        F     TT BND COMMAND
root 20709576 17104922      - A   0  60  1 f1000a0150a523b0   200001  pts/0   8 sleep 3600
root 22741088 17104922      - A   0  60  1 f1000a01508a9fb0   200001  pts/0   0 sleep 3600
aix02 #

Hinweis: Die Bindung wurde mit dem Kommando bindprocessor wie folgt eingerichtet:

aix02 # bindprocessor 15597746 16
aix02 #

Das erste Argumente ist dabei die PID des zu bindenden Prozesses und das zweite Argument die Nummer des Prozessors. Wobei die Prozessor-Nummer hier die Nummer des sogenannten logischen Prozessors ist (siehe Simultaneous Multi-Threading SMT später).

Damit kann der Prozessor nun ohne weitere Probleme weggenommen werden:

$ lpar rmprocs aix02 1
$

Damit sind anschließend wieder nur noch 2 dedizierte Prozessoren in der LPAR verfügbar:

aix02 # lsdev -l proc*
proc0 Available 00-00 Processor
proc8 Available 00-08 Processor
aix02 #