How to determine when/if maximum memory was allocated to an AIX LPAR

aixmemory

I recently had an LPAR on a Power7 system seemingly run out of memory. While it was up, I was unable to run any commands, so I was forced to perform an OS restart. It's minimum, desired, and maximum memory allocations are 8GB, 16GB, and 32GB, respectively. Is there some record of of the full 32GB (or whatever was available) being allocated to this LPAR after it exhausted the available 16GB?

Aside from merely wanting the reassurance that indeed did happen, knowing an exact time this happened would be useful in troubleshooting.

Best Answer

That's not how Min / Desired / Max work for pSeries memory. Desired is the amount of memory the LPAR will get allocated, if that much is free in the entire frame, when the server boots. Minimum is the lowest value the LPAR will tolerate having assigned at boot time, and the lowest value you can dynamically reduce the memory to, and Maximum is the largest value you can dynamically allocate to the LPAR while it's running.

However, while it's running, AIX will not consume more memory if it reaches the 16GB. The LPAR had 16GB, it ran out, AIX killed a bunch of processes (this is normal), and you rebooted it. It never tried to grab more memory, that's not how it works.

To change the available memory (either up or down), you use the HMC to perform DLPAR operations. So you could have manually increased the memory from 16GB to say 20GB from your HMC while the server was having issues, and that may have helped (or it may not have done so, or the DLPAR may have failed because it requires the server to fork processes which may not have been possible). You can automate some DLPAR activity, and you can even tie it all together with something like Tivoli, but it doesn't happen on it's own.

There's a good summary here.

Related Topic