Medindo o uso de E / S do disco de um programa

11

time é um comando brilhante se você quiser descobrir quanto tempo de CPU um determinado comando leva.

Estou à procura de algo semelhante que possa medir a E / S do disco do programa e de qualquer criança. De preferência, deve distinguir entre E / S que foi armazenada em cache (e, portanto, não causou a rotação do disco) e E / S que não foi armazenada em cache.

Então, eu gostaria de fazer:

iomeassure my_program my_args

e obter uma saída semelhante a:

Cached read: 10233303 Bytes
Cached write: 33303 Bytes  # This was probably a tmp file that was erased before making it to the disk
Non-cached read: 200002020 Bytes
Non-cached write: 202020 Bytes

Analisei vmstat , iostat e sar , mas nenhum deles está analisando um único processo. Em vez disso, eles olham para todo o sistema.

Eu olhei para iotop , mas isso só me dá uma visão neste instante.

--- editar ---

a resposta de snap parece próxima.

'Entradas do sistema de arquivos:' são as leituras não armazenadas em cache em blocos de 512 bytes.

'Saídas do sistema de arquivos:' são as gravações em cache em blocos de 512 bytes.

Você pode forçar o cache a ficar vazio com:

sync ; echo 3 | sudo tee /proc/sys/vm/drop_caches >/dev/null

Eu testei com:

 seq 10000000 > seq
 /usr/bin/time -v bash -c 'perl -e "open(G,\">f\"); print G <>;close G; unlink \"f\";" seq'
    
por Ole Tange 16.08.2011 / 16:11

1 resposta

8

Você não especificou qual sistema operacional você usa.

Linux

Em vez de usar time foo , que é (normalmente) um shell embutido, você pode tentar o comando externo /usr/bin/time foo . Ele fornece algumas informações adicionais, como o número de entradas e saídas do sistema de arquivos (mas nenhuma informação sobre ocorrências de cache ou quantidades de bytes). Veja man time e man getrusage para mais instruções.

Note que este recurso requer o kernel Linux versão 2.6.22 ou mais recente.

FreeBSD

Use /usr/bin/time -l foo . Dá o número de entradas e saídas. Veja man time e man getrusage para mais instruções.

    
por 16.08.2011 / 18:22

Tags