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.
Parent topic:Creating Resource Pools