Depurar picos repentinos de carga

2

Preciso depurar picos de carga repentinos automaticamente. Nós já monitoramos com nagios como scripts de verificação, mas os picos de carga são raramente e curtos.

Eu procuro um daemon que verifica a carga a cada N segundos e, se houver algum problema, reporta algo como ps aux --forest (e iotop --batch)

Gráficos criados com, por exemplo, Munin não ajuda aqui, pois preciso identificar os processos que causam a carga.

    
por guettli 22.05.2012 / 11:30

2 respostas

1

Entre muitas possibilidades de monitoramento de processos locais ( escolha seu veneno ) é monit , eu faço algo assim em /etc/monit.d/system.conf em máquinas centos;

check system localhost
    if loadavg (1min) > 6 then alert
    if loadavg (5min) > 6 then alert
    if memory usage > 90% then alert
    if cpu usage (user) > 90% then alert
    if cpu usage (system) > 75% then alert
    if cpu usage (wait) > 75% then alert

Eu imagino que você pode querer ser mais agressivo com as verificações, portanto, você pode querer configurar o daemon para executar verificações com mais freqüência, talvez a cada 30 segundos até que você tenha determinado o problema e, portanto, use um /etc/monit.conf como este;

set daemon  30
set mailserver localhost
#set alert [email protected] but not on { instance }
set alert [email protected]
include /etc/monit.d/*
set httpd port 2812
        allow 127.0.0.1

Se o monit não fornecer informações suficientes no alerta de email padrão, você poderá ter monit scripts personalizados de execução em condições de alerta, como assim;

check system localhost
    if loadavg (1min) > 6 then exec "/bin/bash -c '/usr/bin/top -n1 -b  | /bin/mail -s top-output [email protected]'"
    if loadavg (5min) > 6 then exec "/bin/bash -c '/usr/bin/top -n1 -b  | /bin/mail -s top-output [email protected]'"
    if cpu usage (user) > 90%  then exec "/bin/bash -c '/usr/bin/top -n1 -b  | /bin/mail -s top-output [email protected]'"

(obviamente depende do comando mail sendo configurado, mas você pode usar a raiz local em vez disso e apenas verificar manualmente)

    
por 22.05.2012 / 11:46
0

perf é o caminho a percorrer, normalmente é instalado por padrão ( linux-tools no Debian).

Use perf top para analisar seu problema de forma interativa e, em seguida, use perf stat -p PID para refinar pelo PID. Veja o wiki para encontrar mais: link

    
por 22.05.2012 / 17:21