6.2.7. Changing a Shared Memory Pool

A shared memory pool can be changed online. LPARs that use the shared memory pool can remain active when the shared memory pool is changed. Among other things, the following attributes can be changed:

    • pool_mem – the size of the shared memory pool (must be a multiple of the LMB size)
    • max_pool_mem – the maximum size of the shared memory pool
    • paging_vios_names – one or two paging virtual I/O servers (list separated by commas)
    • … – further attributes are listed in the online help („ms help chmempool”)

The shared memory pool on the managed system was created with a size of 20 GB. The size is now to be expanded to 24 GB, whereby the maximum size should be 32 GB. The command for changing a shared memory pool is “ms chmempool” (change memory pool):

$ ms chmempool ms03 pool_mem=24G max_pool_mem=32G
$

The new pool size can be checked using “ms lsmempool“:

$ ms lsmempool ms03
                   POOL_MEM             PAGING  
MS_NAME  CURR   AVAIL  FIRMWARE  MAX    VIOS_NAMES  MEM_DEDUP
ms03  24576  23896  269       32768  ms03-vio1   0
$

The shared memory pool currently only has one paging virtual I/O server and therefore no redundancy if the paging virtual I/O server ms03-vio1 fails. However, this can be changed online if another paging virtual I/O server is available:

$ ms chmempool ms03 paging_vios_names=ms03-vio1,ms03-vio2
$

If the additional paging virtual I/O server has access to the same paging devices, this is recognized automatically:

$ ms lspgdev ms03
                                                                REDUNDANT  
MS_NAME  DEVICE_NAME  PAGING_VIOS_NAME  STATE   DEVICE_NAME  PAGING_VIOS_NAME  STATE     SIZE   TYPE  LPAR_ID
ms03   hdisk4       ms03-vio1    Active  hdisk4       ms03-vio2    Inactive  51200  phys  5
ms03   hdisk3       ms03-vio1    Active  hdisk3       ms03-vio2   Inactive  51200  phys  6
$

Both paging devices can also be accessed by paging virtual I/O server ms03-vio2. In this case, even the device names are identical on both paging virtual I/O servers, but this is in general usually not the case. However, the shared memory LPARs only know the first paging virtual I/O server configured when the LPAR was created:

$ 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  -
shlpar1    shared  0.0  1024  4096  8192  0    0     0    1        60      ms03-vio1  -
$

This can only be changed in the profile of the LPAR:

$ lpar -p standard chmem aix22 secondary_paging_vios_name=ms03-vio2
$

For the change to take effect, the LPAR must be shut down and reactivated with the changed profile:

$ lpar -i osshutdown aix22
$
$ lpar -p standard activate aix22
$

Only then, the LPAR can use the second paging virtual I/O server and is configured redundantly:

$ 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  -
$