Welcome back! Today we're going to dive into a new function called Dynamic Platform Optimizer (DPO) which was recently released via FW 760.00 for exisitng P7 High-end systems (FHB) and the new P7+ based IBM Power 770 (MMD) and 780 (MHD) systems. We had a great internal presentation by the technical owner of this function, Ed Prosser (PowerVM Hypervisor Development), and I wanted to share some of the highlights of that with you today. DPO touched multiple subsystems from within the IBM Power servers but Power Firmware (specifically PHYP) had a large contribution to it.
What does it Do?
In a nutshell, DPO optimizes memory access for the partitions running in your system. Faster memory access can equal large boosts in overall performance. DPO does this by dynamically moving the processor and memory assigned to each partition so that the partitions resources have the best affinity possible (given the constraints of the partition configuration and system hardware topology). Here's the high level priority rules the firmware uses for resource placement of each partition:
1. Memory that is directly attached to the processor using it.
2. Memory that is within the same node/drawer as the processor using it.
3. Memory in other nodes/drawers
I borrowed the following picture from the redbook article I reference at the bottom. It provides a nice visual on what the function does. In this example, partition 4 was specifically marked to not be affected by the DPO operation. You can see how the other 3 logical partitions have their CPU's and corresponding memory moved to optimize the affinity.
Why do I need It?
When partitions are initially created, the above rules are followed automatically but as new partitions are created and deleted, DLPAR operations are performed, partitions are moved around, and functions like mobility are used, the configuration can become degraded in regards to processor/memory affinity. DPO is a way to re-optimize your system based on its current state without requiring a system reboot.
How do I use It?
Control is done via the HMC command line tool (lsmemopt and optmem). The command line tools provide ways to see your current memory affinity score (0-100) and to control which partitions' are affected as well as to provide overall status of the operation. See the reference below for more information.
What are the Caveats?
The most important one is that running DPO on partitions that have older OS's could actually degrade performance unless the partition is rebooted! This is because the earlier OS versions will not know that their resource placement has changed, and will be assigning virtual processors and memory to applications based on stale topology data. Please either plan to reboot these partitions after running DPO, exclude them from the DPO operation (using the command-line option), or (best of all) update the partitions operating systems to the appropriate level as defined in the references below.
Please note that running DPO will impact the performance of the partitions it is running against (up to 20%) so plan accordingly. PHYP will utilize idle CPU cycles from cores within the system to run the required algorithms during the DPO process so there is no impact to other partitions in the system.
Finally, some mobility operations and virtualization features are blocked while running DPO.
That's it! Take it for a spin and let us know how it works out for you. Please feel free to follow me on twitter (@PowerFW) for the latest and greatest news from Power Firmware Development.
IBM PowerVM Virtualization Managing and Monitoring (see chapter 15)