Minimizing memory size
This text briefly describes how the variables mentioned in the listings in this section are calculated
For complete configuration file listings, refer to cpuplugd configuration files.
The second series of tests was aimed at minimizing the memory size further in order to reach the manually sized setup. The following rules are evaluated:
Memory configuration 7 (same as configuration 4, but with reduced free memory limit). The plugging rules are as follows:
MEMPLUG="pgscanrate > 20" # direct scans only!MEMUNPLUG="(meminfo.MemFree + avail_cache) > ( meminfo.MemTotal / 20)"
Memory is increased if direct page scan rates exceed 20 pages/sec. Memory is reduced if the sum of free memory and page cache exceeds 5% of the total memory. The rules use the values the variables assumed during the current interval.
CMM_INC="meminfo.MemFree / 40"CMM_DEC="meminfo.MemTotal / 40"
MEMPLUG="pgscanrate > 20" # direct scans only!MEMUNPLUG="(meminfo.MemFree + avail_cache) > ( meminfo.MemTotal / 20)"
Memory is increased if direct page scan rates exceed 20 pages/sec. Memory is reduced if the sum of free memory and page cache exceeds 5% of the total memory. The rules use the values the variables assumed during the current interval .
CMM_INC="(meminfo.MemFree + avail_cache) / 40"CMM_DEC="meminfo.MemTotal / 40"
CMM_INC, which defines the chunk size when the
CMM pool is increased, now includes the page cache, which should result
in larger increments. All other scenarios have CMM_INC="meminfo.MemFree
/ 40".
| Config | Increase memory if | Shrink memory if | Relative TPS* | Relative LPAR CPU load* | Guest size (MiB)* | |||
|---|---|---|---|---|---|---|---|---|
| Parameter | Rate [pages/sec] | Memory type | % of total memory | Linux™ | z/VM® | |||
| 4 | direct scans | > 20 | free + page cache | > 10% | 96% | 99% | 109% | 105% |
| 7 | direct scans | > 20 | free + page cache | > 5% | 93% | 98% | 97% | 99% |
| 8 | direct scans | > 20 | free + page cache | > 5% | 94% | 97% | 97% | 99% |
CMM_INC=(free+page cache)
/40 |
||||||||
| *100% is the manual sized run | higher is better | lower is better | closer to 100% is better | |||||
Observation
The total memory size is now smaller than the manually sized configuration, but the throughput is also lower.
Conclusion
There is a very slight advantage to using configuration 8 (the configuration with larger increments) over configuration 7, but the difference between them is very small.