Monitoramento de CPU e uso de memória para um único processo

3

Eu preciso monitorar o uso da CPU e da memória para um único processo em um servidor AIX. O programa é executado 3 vezes por dia. Eu preciso encontrar o caminho para capturar estatísticas dentro de alguns intervalos de tempo, digamos a cada 10 min.

    
por ellen 11.11.2014 / 23:53

3 respostas

1

Sugiro coletar estatísticas gerais do sistema com nmon e analisando-os com nmon-analyzer ou nmon2rrd - mesmo que seja apenas para um processo. Ter algo para correlacionar é útil. svmon também pode ser usado para monitorar a memória uso.

Aqui estão alguns bons artigos sobre monitoramento de processos e sistemas para o AIX:

por 14.11.2014 / 22:35
0

Eu assumo que aix funciona como o gnu / linux. Crie um arquivo em /etc/cron.d/. Vamos chamá-lo de 'monitor', altere a parte grep processname para o seu processname

# +---------------- minute (0 - 59)
# |  +------------- hour (0 - 23)
# |  |  +---------- day of month (1 - 31)
# |  |  |  +------- month (1 - 12)
# |  |  |  |  +---- day of week (0 - 6) (Sunday=0 or 7)
# |  |  |  |  |
# *  *  *  *  *  user    command to be executed
*/10 *  *  *  *  root    ps aux | grep processname >>/var/log/mylog.log

adicione a seguinte linha ao /var/log/mylog.log

USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND

se você não tem root, você pode iniciar o crontab -e como usuário omitir o nome de usuário root antes do ps aux, e ao invés de redirecionar a saída para / var / log / você deve usar $ HOME /.

    
por 12.11.2014 / 01:59
0

Estou apenas dando uma ideia e não um roteiro completo. Você precisa modificar para atender às suas necessidades.

Para monitorar o uso da CPU e o uso da memória, o comando usado é ps . Acredito que -C e -o flags são suportados no servidor AIX . No entanto, você poderia descobrir a sintaxe correspondente de man ps em sua máquina.

ps -C program_name -o %cpu,%mem

Agora, para que seja executado a cada 10 minutos por 6 vezes no servidor, eu colocaria o script abaixo. Eu suponho que você precisa monitorar uma vez a cada 10 minutos por uma hora ou mais.

i=6
filename=$(echo memory_monitoring_'date +%F_%T')
touch $filename
while [ $i -ge 1 ]
do
    sleep 600 #sleep for 10 minutes. 
    ps -C program_name -o %cpu,%mem >> "$filename"
    i=$((i-1)) 
done

Então, basicamente, com o script acima, eu crio um novo arquivo toda vez que preciso monitorar a memória. Depois disso, executo o script por 1 hora, e é por isso que você vê i está definido como 6. sleep 600 é para monitorar a memória a cada 10 minutos.

Se você precisar de otimizações, adicione um comando mail para enviar por e-mail o arquivo criado para usá-lo para fins de auditoria.

Configurar um trabalho cron é bastante simples e você pode encontrar inúmeros tutoriais on-line que podem ajudá-lo.

    
por 12.11.2014 / 02:09