Teoricamente, você pode obter iowait
por processo a partir de /proc/[pid]/stat
, já que a partir do bloco correspondente de PROC (5) nós lemos:
(42) delayacct_blkio_ticks %llu (since Linux 2.6.18)
Aggregated block I/O delays, measured in clock ticks (centiseconds).
Eu não tenho ideia do que o delayacct_blkio_ticks
significa praticamente. De qualquer forma, o único man proc
será útil para você.
Existe uma questão relacionada, verifique: Bloco de medição I / O atrasos usando proc FS
Além disso, preste atenção nas notas de /proc/stat
no bloco iowait
por CPU:
- The CPU will not wait for I/O to complete; iowait is the time that a task is waiting for I/O to complete. When a CPU goes into idle state for outstanding task I/O, another task will be scheduled on this CPU.
- On a multi-core CPU, the task waiting for I/O to complete is not running on any CPU, so the iowait of each CPU is difficult to calculate.
- The value in this field may decrease in certain conditions.
Você pode obter iowait
dados por CPU de /proc/stat
. No meu Ubuntu 18.04 no /proc/stat
existe tal parte:
cpu 2752162 16054 941158 49212025 789607 0 217089 0 0 0
cpu0 1397207 7767 500620 24623046 407078 0 70574 0 0 0
cpu1 1354955 8286 440538 24588978 382529 0 146515 0 0 0
A quinta coluna, além da coluna cpu
s, é iowait
value no meu caso particular . O número de colunas e seu significado podem ser vários dependendo do seu kernel em uso.
Para que cada coluna tenha um significado exato, você precisa examinar sua documentação. No Ubuntu, instale o pacote linux-doc
primeiro:
sudo apt install linux-doc
e olhe para man proc
:
man proc
Existe uma parte com a explicação exata de /proc/stat
para cada coluna.
Leia também Como ler o arquivo Linux / proc / stat para saber como para calcular valores.
No CentOS, é necessário instalar o kernel-doc
package:
yum install kernel-doc
leia o arquivo:
/usr/share/doc/kernel-doc/Documentation/filesystems/proc.txt