There are already many tools to measure the % of the CPU waiting time during I/O operations, like dstat. Nevertheless, I am looking for a way to measure the waiting time % of the active cores.

In particular, my servers have an Intel i7 CPU. These CPUs are not active all the time, thus if one wants to measure the CPU utilization, the PCM tools provide two different metrics: either over a nominal CPU cycle or an active CPU cycle.

Is there a similar way to measure the I/O waiting time over the active CPU cycles? I have a strong feeling that my active CPU are I/O bottlenecked, but the overall waiting time is low (about 3%-8%). I have 8 cores and 2 threads/core, so I cannot quantify if this percentage is "a lot" or not.

  • are we talking desktop or server? Either way, A thread goes inactive (context switch) when a DMA request for data from secondary storage is made, so the wait time is never part of an active process. If the OS has other threads to run, they run while the request is being completed, but if not, the core is inactive while you wait on the IRQ to say "DMA complete". Are you interested specifically in global aggregate values representing an approximate load, or are you asking a more specific question about a specific program or thread? Commented Jun 13, 2017 at 18:47
  • @FrankThomas Thanks for your feedback. We are talking about a server, in particular. I am asking for a specific program, though (a container, running a hadoop application). I have 3 containers running the same application and I would like to check whether they run into a concurrent I/O bottleneck.
    – Adama
    Commented Jun 14, 2017 at 7:37


You must log in to answer this question.

Browse other questions tagged .