como ler qualquer processo '/ proc / pid / io

2

Estou tentando monitorar a atividade do disco de cada processo. Uma maneira de descobrir como fazer isso é ler o arquivo / proc / pid / io e comparar os campos com a leitura anterior. Isso funciona bem, exceto que meu processo de monitoramento parece ser capaz de ler apenas alguns arquivos io (por exemplo, ele não tem permissão para ler o apache). Como ler io dos outros? Talvez também exista uma maneira melhor de alcançar esse objetivo?

Editar Obviamente, posso executar o processo como root, mas gostaria de evitar isso

    
por ren 19.12.2014 / 15:08

1 resposta

5

Use iotop .

Ele deve estar disponível em seu repo para uma máquina Redhat / Centos / Fedora (se ainda não estiver instalada).

Produz uma informação similar como top , mas em vez das estatísticas de CPU / memória, você obterá as estatísticas de IO (o disco lê, escreve e troca).

As opções -p , -u e --only podem ser do seu interesse.

Por exemplo, para ver a atividade IO do processo com o ID 5435, use:

iotop -p 5435

Da página man :

   -p PID, --pid=PID
          A list of processes/threads to monitor (all by default).

   -u USER, --user=USER
          A list of users to monitor (all by default)

   -P, --processes
          Only show processes. Normally iotop shows all threads.
    
por 19.12.2014 / 15:47

Tags