This document contains official content from the BMC Software Knowledge Base. It is automatically updated when the knowledge article is modified.
BMC Performance Assurance for Virtual Servers
BMC Performance Assurance for Virtual Servers
SpecInt calculation question
LP: BMC Performance Analyzer for Servers 7.5.10
In our Visualizer database we have in table CAXNODE the field NUM_OF_PROC and in the table CAXNODED the field TOTAL_ONLINE_PROCS.
So a box can have 24 processors which is in NUM_OF_PROC, but only 20 are online and usable by an LPAR, and so 20 is the value of TOTAL_ONLINE_PROCS.
Which of these fields are used to calculate the SpecInt value?
In the past the formula was:
Is this still valid? And is it correct? Any comments about this?
Issue Summary: SpecInt calculation question for Visualizer database
This is a restatement of the formula for calculating the SPECints associated with physical utilization:
SPEC USED=(CAXNODED.CPU_UTIL/100) /CAXNODE.NUM_OF_PROC * CAXNODE.SPEC_RATING
This formula can be used as long as the measured CPU utilization is "physical" (i.e. the CAXNODED.CPU_Util metric represents physical CPU usage).
Cases where this metric would be logical-processor based and not physical-processor based would include Solaris: CMT and MT or Windows and Linux: Hyper-Threading (HT). AIX SMT already has a physical utilization recorded so it doesn't require any adjustment.
The key is that the underlying SPEC rating is for the entire physical configuration, even if all of the processors are not active. The same is true if you are calculating SPECint values for a partition on the frame, too.
If you are using CAXNODE as the basis for your calculations, every calculation should have
CAXNODE.SPEC_RATING / CAXNODE.NUM_OF_PROC
in it. Then multiply by the number of processors (used or configured, it doesn't matter).
So this would calculate the SPECints associated with the active processors on the frame:
SPECINT_ONLINE_PROCS = (CAXNODE.SPEC_RATING / CAXNODE.NUM_OF_PROC) * CAXNODED.TOTAL_ONLINE_PROCS
Online processors was added to CAXNODED to "simulate" the way that active ("online") frame processors is represented in the new schema: CAXMODEL has the physical configurable processors, CAXPSYSD has the number of online processors, CAXPOOLD has the number of processors in the pool, CAXVMD has the virtual and entitlement processors.
Although CAXNODE/D should have similar information, the "new" portion of the schema was designed to better represent virtualized systems (CAXPSYS/D, CAXVM/D and CAXMODEL), so should be used as a basis for AIX partition reporting going forward. Note that you should receive similar results for AIX partitions using either the "new" (new with 7.5.00) tables for virtualization or "original" (CAXNODE/D) tables.
If you want to calculate the SPECints associated with CAXNODED.ENTITLEMENT, I would consider it related to the number of processors in the pool (rather than the number on the frame), which is only reported as part of the "ROP" object in CAXNODE, where it's the Num_logical_proc metric. But if you wanted to calculate how many SPECint it represents, the formula would be the same as shown above -- just substitute CAXNODED.ENTITLEMENT for CAXNODED.TOTAL_ONLINE_PROCS.
CAXNODED.CPU_UTIL is a physical measurement of CPU time consumed. So 100 means all the time in the interval was consumed on a CPU. 200 means that 2 processors were consumed over the interval, and so on. When you divide it by a particular number of processors, for example, the processors configurable on the frame, you have calculated an % of potential capacity utilized. When you divide by the number of online processors, you have calaculated % of enabled capacity utilized. You can divide it by entitlement, virtual processors, pool processors, or shared pool processors to get the corresponding utilization.
The key is that all elements regarding AIX partitions are in units of physical processors, which is why they can be compared directly with each other as well as you can compute whatever % utilization you would like -- all would have the common numerator, CAXNODED.CPU_UTIL.
You can verify your calculations (CAXNODE-based) using Visualizer Graphics -> CPU (Customized) -> AIX Partition CPU Usage Hierarchy 4.2.02: metrics % Physical_Used and Spec_Used.
Your calculation using DB table names:
CPU-Physical Used: CAXNODED.CPU_UTIL/CAXNODE.NUM_OF_PROC
Visualizer graphic calculation using input DB metric names:
%Physical_Used: CPUUT /NPCPU
SPEC_Used: %CPUUT /NPCPU *MIPS
The odbca200.txt file in your Visualizer installation shows the correspondence between the input .vis file names and the resulting DB table names. You can download the latest local vgd file (KA357032), so you can easily test your results.
There are many SPEC calculation formulas which can be found in both the local.cpaix.vgd (CAXNODE-based) or cpaix.vgd files (CAXPSYS, CAXVM, CAXWPAR, CAXEVM-based).
When you are using the virtualization schema (which is what's used by Perceiver and BCO when displaying data), here are the basic calculations:
Available SPECint for a physical system:
CAXPSYSD.Physical_Processors / CAXMODEL.Max_Processors * CAXMODEL.Rating
Used SPECint for a physical system:
CAXPSYSD.CPU_Used / CAXMODEL.Max_Processors * CAXMODEL.Rating
Used SPECint for a partition (HP nPar, vPar, AIX SPLPAR, DLPAR, ESX VM, etc,)
CAXVMD.CPU_Used / CAXMODEL.Max_Processors * CAXMODEL.Rating
Used SPECint for an emulated partition (HP IVM, KVM, etc,)
CAXEVMD.CPU_Used / CAXMODEL.Max_Processors * CAXMODEL.Rating
Available SPECint for a partition can be calculated for partitions with "dedicated" processors (HP nPar, vPar, AIX DLPAR)
CAXVMD.Dedicated_Processors / CAXMODEL.Max_Processors * CAXMODEL.Rating
Non-dedicated partitions such as AIX SPLPAR or ESX VMs have possible calculations for available, but note that they are not straightforward to interpret.
- BMC Performance Assurance for Servers