Onde encontrar o stat do iowait para um único processo (como um arquivo)

0

Estou escrevendo um script e preciso encontrar um arquivo no qual as estatísticas para um iowait de um único processo / pid / serviço sejam armazenadas. Existe algum arquivo assim em distribuições baseadas em Debian ?

Nem /proc/<pid>/stat , nem /proc/<pid>/io tem alguma estatística para iowait , de acordo com as páginas do manual. Estou ciente de que posso analisar a saída de outras ferramentas como iotop , sar e etc., no entanto, a análise de stdout de comandos externos é um problema de desempenho que tenho de evitar .

Nota : estou ciente de /proc/stat e o significado do seu conteúdo. Eu preciso da estatística iowait para um processo único , não para toda a CPU ou um núcleo.

    
por Fanatique 30.07.2018 / 10:54

1 resposta

2

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:

  1. 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.
  2. 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.
  3. 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
    
por 30.07.2018 / 11:51

Tags