Example: Memory Allocation Among Resource Pools

The following images demonstrate memory allocation per worker node on a 15-node appliance. Each worker node has approximately 63GB of memory available (about 1TB total memory for the system). A new WLM profile, testprofile, is created, then associated with some resource pools that have different memory requirements.
When testprofile is created, it contains a default system pool with 4.3GB of memory (a fixed amount).

A second resource pool named unrestricted_pool, with 20 slots, is added. Because this pool does not restrict memory, it accrues all of the available memory (57.8GB). 2.9GB is available per slot.

A third pool, fixed_pool_8GB, is added, with 10 slots and spilling disabled. It claims 8.4GB of memory, and because spilling is disabled, it is allowed to allocate less than 1GB to each slot. Note that unrestricted_pool now drops to 49.4GB to accommodate the new fixed-memory pool.

A fourth pool, percentage_pool_10, is added, with 1 slot and its percentage set to 10. It accrues 10% of the memory on the node, approximately 6.2GB. (Note that the percentage is the percentage of the total memory, not the percentage of the remaining memory.) In turn, unrestricted_pool drops again, now to 43.2GB.

In the final step, the percentage pool is modified to 50% (percentage_pool_50). Note that this change makes a big difference to its own memory allocation, which goes up to 27.9GB. However, its allocation cannot go any higher because unrestricted_pool, with 20 slots and spilling enables, must maintain a minimum allocation of 1.1GB per slot, and the two fixed-memory pools must maintain their fixed allocations. If you were to change the percentage pool to 75%, or even 100%, the allocations shown here would stay the same.