6.2.9. I/O Entitled Memory

Für I/O Operationen ist es essentiell das zum Zeitpunkt des I/O physikalischer Speicher verfügbar ist. Trifft beispielsweise ein Netzwerk-Paket ein und es gibt keinen physikalischen Speicher in dem das Paket abgelegt werden kann, da erst physikalischer Speicher über den Hypervisor aus dem Shared Memory Pool zugeordnet werden muß, dann kann dies die Latenz-Zeit der Netzwerk-Kommunikation deutlich erhöhen. Oder soll eine Platten Paging Operation durchgeführt werden und die Ziel-Speicherseite für die Operation ist selbst aktuellem keinem physikalischen Speicher zugeordnet, so erhöht dies die Dauer der Paging Operation deutlich. Im ungünstigsten Falle könnte eine I/O Operation auch fehlschlagen, weil ein vorgegebenes maximales Timeout erreicht wird.

Um dies zu verhindern wird bei Verwendung von Shared Memory eine gewisse maximale Menge an physikalischen Speicher für I/O-Operationen garantiert, unabhängig davon, wieviel andere LPARs gerade an physikalischem Speicher benötigen. Diese garantierte Menge an physikalischem Speicher wird als I/O Entitled Memory bezeichnet. Per Default wird die Größe automatisch ermittelt in Abhängigkeit der Art und Anzahl von virtuellen I/O Adaptern.

Wieviel I/O Entitled Memory einer LPAR gerade zugewiesen ist, kann mit dem Kommando „lpar lsmem“ angezeigt werden:

$ lpar lsmem aix22 shlpar1
             MEMORY          MEMORY         HUGE_PAGES    IO_ENTITLED_MEM      PAGING_VIOS
LPAR_NAME  MODE    AME  MIN   CURR  MAX   MIN  CURR  MAX  AUTO     CURR    PRIMARY    SECONDARY
aix22   shared  0.0  1024  2048  8192  0    0     0    1        351     ms03-vio1  ms03-vio2
shlpar1    shared  0.0  1024  4096  8192  0    0     0    1        60      ms03-vio1  -
$

Die LPAR aix22 mit 4 virtuellen I/O Adaptern besitzt gerade 351 MB I/O Entitled Memory, wohingegen die LPAR shlpar1 mit nur einem virtuellen Ethernet Adapter lediglich 60 MB I/O Entitled Memory besitzt.