relata estatísticas de IO por processo com pidstat ou sar

2

Estou tentando acompanhar o uso de alguns processos "suspeitos" ao longo do tempo. Idealmente, gostaria de disponibilizar essas estatísticas via munin ou enviar diretamente para o grafite. No entanto, como ponto de partida, seria ótimo poder rastrear esse uso ao longo do tempo de maneira razoavelmente eficiente em termos de espaço / recursos. E, em seguida, conseguir recuperar, digamos, os 10 principais consumidores de IO e suas estatísticas de leitura / gravação de dados durante um período de tempo.

pidstat -d 2 parece produzir uma ótima saída dos principais processos de consumo de conteúdo a cada poucos segundos. E eu entendo que sar tem algum arquivamento embutido, mas não tenho certeza de como fazer isso arquivando as estatísticas que eu obtenho em pidstat (talvez no SA1_OPTIONS ? Eu estou no debian / ubuntu) .

Além de canalizar pidstat para o disco e, em seguida, executar alguma coleta / agregação na saída, existe alguma maneira de fazer a mesma coisa (mas com mais eficiência) com o sar e recuperar as estatísticas mais tarde?

    
por Yoav Aner 11.02.2014 / 14:48

1 resposta

1

surgiu com este script ad-hoc que envia informações de pidstat (por processo IO ler e escrever) para grafite via carbono

#!/bin/bash

hostname='hostname -s'    
carbon_host=YOUR_CARBON_HOSTNAME_OR_IP
carbon_port=2003

pidstat -h -d 1 | grep --line-buffered -v '^$' | grep --line-buffered -v '^#' | grep --line-buffered -v '^Linux' | awk --assign=hostname=${hostname} '{ printf "servers.%s.pidstat.%s.read %s %s\nservers.%s.pidstat.%s.write %s %s\n", hostname, $6, $3, $1, hostname, $6, $4, $1 ; fflush(); }' > /dev/tcp/${carbon_host}/${carbon_port}
    
por 15.02.2014 / 09:44