AIX > Administrator > Performance

CPU Threading Efficiency: The Processor Consumed Value

CPU Threading Efficiency

The cpu:pc value is the amount of CPU consumed over the interval. Most of us naturally assume it maps to a count of discrete CPUcores, and for capacity planning, this assumption is mostly harmless.

However, this assumption is reckless for tactical monitoring, because the cpu:pc value doesn't actually map to a count of discrete CPUcores. Instead, it represents the total of fragments of CPUcore time held by one-to-many CPUcores. By "held," I mean that while concurrent fragments of CPUcore time are working or waiting, they're unavailable to serve any other virtual CPU (of this or any other LPAR).

Figure 2 is an example of AIX:mpstat output from the same LPAR illustrated in figure 1. In figure 2, the AIX:mpstat output illustrates how the cpu:pc value in figure 1 is the total of fragments of CPUcore time held. The AIX:mpstat:pc column accounts fragments of CPUcore time held per logical CPU. In figure 2, the value of cpu0:pc=0.26 means 26 percent of one CPUcore over 1 second was held, the value of cpu1:pc=0.25 means 25 percent of one CPUcore over 1 second was held, etc. At the bottom of figure 2, the AIX:mpstat:pc total of all fragments of CPUcore time held is 7.90 CPUcores for eight virtual CPUs.

An LPAR with eight virtual CPUs can access as many as eight CPUcores. In figure 2, a total of 7.90 CPUcore time fragments is held by eight virtual CPUs on eight CPUcores. In other words, eight CPUcores are held for 7.90 CPUcores of work and wait productivity. Figure 2 illustrates a state of exceptionally high CPU efficiency because virtually all of the eight CPUcores, accessed by eight virtual CPUs, were productive at 7.90 mpstat:pc/8vCPU. Unfortunately, this is rarely witnessed.

In contrast to figure 2, what we see in figure 3 (from a different LPAR) is quite common. In figure 3, the total productivity is 5.69 mpstat:pc/14vCPU. Now compare the mpstat:id idle percent values of figures 2 and 3. The mpstat:id percentage is of the mpstat:pc value. For example, in figure 3, cpu1:id=68.3 and cpu1:pc=0.12 means 12 percent of a CPUcore over 1 second (cpu1:pc=12) is 68.3 percent idle (cpu1:id=68.3), and for cpu2, 95.6 percent of 11 percent of a CPUcore over 1 second is idle. Not only does figure 3 show a total productivity of 5.69 mpstat:pc/14vCPU, but the displayed mpstat:id percentages of total mpstat:pc=5.69 are idle. This is why the figure 1 AIX:vmstat –IWwt 1:cpu:pc value is the amount of CPUcore held (the word held includes both work and wait productivity).

Do not confuse the two meanings of idle in AIX:vmstat –IWwt 1:cpu:id (figure 1) and AIX:mpstat –w 1:id (figures 2 and 3). Idle in AIX:vmstat –IWwt 1:cpu:id (figure 1) is calculated from the average dynamic SMT-mode over the 1-second interval (see my note about CPU idle% in part 4). Idle in AIX:mpstat –w 1:id (figure 2) means a logical CPU is idle-waiting for a workload thread to execute―by running its AIX:wait process (part 4 also includes a note about AIX:wait).

Also in figure 3, cpu0:us=47.6, cpu0:sy=50.9, cpu0:wa=1.4 and cpu:pc=0.44 means 44 percent of a CPUcore over 1 second is 47.6 percent user workload, 50.9 percent system workload and 1.4 percent waitio. Said another way, 47.6 percent of 44 percent of a CPUcore over 1 second is user workload, 50.9 percent of 44 percent of a CPUcore is system workload, and 1.4 percent of 44 percent is waitio.

Again, compare the mpstat:id idle percentages of figures 2 and 3―and learn what few of us notice. This is another reality perspective in the CPU efficiency theme of this series. But why does CPU efficiency matter?

The Strategic Value of POWER8 CPU Efficiency

In contrast to decades ago, POWER8 technology does not meet the traditional expectation of a severe shortfall of CPU cycles for enterprise workload processing. In fact, it is the extreme opposite today. We can now configure so much CPU that we're challenged to keep CPUcores fed, focused and furiously productive (e.g., the LPAR in figure 3 has 14 virtual CPUs that held a total of 5.69 CPUcore time, and a notable amount of 5.69 CPUcore time is idle).

In reality, the state of virtually every POWER8 system I’ve encountered is not unlike figure 3, if not worse. Seemingly by default, we're all configuring too much CPU that cannot be kept productive. I know this sounds outrageous, but check your own LPARs. They'll look more like figure 3, not figure 2.

Efficiency is about value. POWER8 CPU efficiency is about squeezing more work from fewer resources to drive greater overall productivity from your POWER8 investment. Greater efficiency begets greater value. Until now though, we’ve only been focused on performance (and maybe throughput). With today’s growing abundance of POWER8/POWER9 CPU performance and concurrent capacity, we must begin management practices from the other end. We must enter the paradigm of CPU efficiency.

In the next installment in this series, I'll discuss the entitlement consumed percentage (AIX:vmstat:cpu:ec), and show you how to monitor this value.

Like what you just read? To receive technical tips and articles directly in your inbox twice per month, sign up for the EXTRA e-newsletter here.

comments powered by Disqus



2018 Solutions Edition

A Comprehensive Online Buyer's Guide to Solutions, Services and Education.

Achieving a Resilient Data Center

Implement these techniques to improve data-center resiliency.


AIO: The Fast Path to Great Performance

AIX Enhancements -- Workload Partitioning

The most exciting POWER6 enhancement, live partition mobility, allows one to migrate a running LPAR to another physical box and is designed to move running partitions from one POWER6 processor-based server to another without any application downtime whatsoever.

IBM Systems Magazine Subscribe Box Read Now Link Subscribe Now Link iPad App Google Play Store
IBMi News Sign Up Today! Past News Letters