mpstat on RHEL intermittently shows incorrect CPU usage on ALL CPU field for "iowait"

Solution Unverified - Updated -

Issue

mpstat on RHEL intermittently shows incorrect CPU usage on ALL CPU field for "iowait". We execute mpstat every second and the symptom reproduced once in 20000-30000 execution. ( 2-3 times a day). The system has 32 cpu cores. When symptom happens, 1 CPU core shows large value (example 99%).
We expect to see Total CPU usage of 99 / 32 = 3.1%.

But when the symptom happens, the total CPU usage is also 99%. Issue also seen on latest RHEL8 sysstat package.

We see the issue when executing either mpstat -P ALL 1 1 or mpstat -P ALL 1 3600:

Expected Result: 
Total CPU usage (%iowait) should be a value which is divided by 32, because the system has 32 CPUs.
01:17:04 AM  CPU    %usr   %nice    %sys %iowait    %irq   %soft  %steal  %guest  %gnice   %idle
01:17:05 AM  all    0.00    0.00    0.01   _3.12_    0.00    0.00    0.00    0.00    0.00    2.88
01:17:05 AM   17    0.00    0.00    0.00   _99.91_   0.00    0.00    0.00    0.00    0.00    0.09

Actual Result: Total CPU usage (%iowait) is 97.10%.
01:17:04 AM  CPU    %usr   %nice    %sys %iowait    %irq   %soft  %steal  %guest  %gnice   %idle
01:17:05 AM  all    0.00    0.00    0.01   _97.10_   0.00    0.00    0.00    0.00    0.00    2.88
01:17:05 AM   17    0.00    0.00    0.00   _99.91_   0.00    0.00    0.00    0.00    0.00    0.09

Environment

  • Red Hat Enterprise Linux (RHEL) 8
  • package sysstat, versions before sysstat-11.7.3-11.el8
    • The issue was specifically reported for sysstat-11.7.3-5.el8 (rhel8.4)
  • mpstat

Subscriber exclusive content

A Red Hat subscription provides unlimited access to our knowledgebase, tools, and much more.

Current Customers and Partners

Log in for full access

Log In

New to Red Hat?

Learn more about Red Hat subscriptions

Using a Red Hat product through a public cloud?

How to access this content