Como uso top (ou equivalente) para determinar se um processo está se comportando mal?

0

Existem indicadores para quando um processo "passou para o lado negro"?

Eu sinto que usar MEM% e CPU% são indicadores ruins para detectar coisas como vazamentos de memória (ou outros problemas, desculpem meu vocabulário limitado) porque é difícil saber, sem conhecimento suficiente do programa, quanta memória ou CPU que o programa "deveria" usar.

Então, como faço para descobrir processos verdadeiramente ruins e não apenas caros?

    
por Usagi 23.07.2016 / 02:18

2 respostas

0

Eu acho difícil saber exatamente quanto recursos um programa "deveria" usar, mas existem alguns indicadores que você pode verificar se existem recursos suficientes para o seu sistema manipular o programa.

Primeiro, verificamos o PID do processo por (por exemplo, o nome do processo é dataserver):

ps aux | grep dataserver
sybxxx     795 52.9  0.0 1190088 22548 ?       S<sl Jun06 38192:51 /sybase/XXX/ASE-16_0/bin/dataserver

Aqui sabemos que o ID do processo é 795, por isso fazemos uso do comando pidstat :

pidstat -h -r -u -p 795 5
Time       PID   %usr    %system  %guest  %CPU   CPU  minflt/s  majflt/s     VSZ    RSS   %MEM  Command
1469520679  795  242.80    5.00    0.00  247.80  24    0.00      0.00     53618888  22548   0.02  dataserver

A partir da saída, sabemos que o processo está usando cerca de 2,4 núcleos de CPU, enquanto o sistema tem 24 núcleos instalados. Além disso, a memória usada em porcentagem é de cerca de 0,02% na quantidade total de memória instalada.

Além de tais informações, acho que valeria a pena ter uma verificação geral do sistema para evitar a escassez de recursos.

Primeiramente, para verificar o carregamento da CPU , você pode usar o comando sar . Para determinar o mau desempenho de um sistema, você deve verificar a seguinte saída.

Em situação normal, a saída do iostat seria semelhante à seguinte:

sar
12:00:01 AM     CPU     %user     %nice   %system   %iowait    %steal     %idle
12:10:01 AM     all      0.70      0.00      0.15      0.01      0.00     99.13

O valor para% ocioso deve permanecer alto, enquanto o valor de% user,% system e% iowait deve ser baixo para um sistema não ocupado.

Para o problema de disco I / O , você pode verificar o resultado de iostat -x :

Device: rrqm/s   wrqm/s     r/s     w/s   rsec/s   wsec/s avgrq-sz avgqu-sz   await  svctm  %util
sda     0.07     1.58    0.27    1.04    13.72    20.87    26.54     0.01    7.50   3.33   0.43
sdc     4.09   252.47  483.10    5.90 18616.61  2148.57    42.46     5.88   12.03   1.99  97.29

Este é um mau exemplo, como você pode ver a porcentagem de utilização para o dispositivo sdc se tornou 97,29%, o que indica que há um problema de E / S de disco.

Para verificar se temos memória suficiente para o sistema, dê uma olhada no uso da paginação:

sar -B
10:30:01 AM  pgpgin/s pgpgout/s   fault/s  majflt/s  pgfree/s pgscank/s pgscand/s pgsteal/s    %vmeff
10:40:01 AM   8524.25     47.12    856.03      0.00    263.76      0.00      0.00      0.00      0.00
10:50:01 AM   8391.64     82.94   1116.50      0.08    377.87      0.00      0.00      0.00      0.00

Como podemos ver a paginação por segundo é muito alta para este servidor, portanto podemos suspeitar que o sistema está ficando sem memória.

    
por 26.07.2016 / 10:35
0

Eu costumo olhar para a carga primeiro. Se 2 dos 3 números são o topo estão acima de 3, então você está indo na direção errada. Um carregamento acima de 8 para qualquer um dos 3 números é um problema sério, o que significa que você está executando vários garfos de um processo ou que sua máquina não está equipada para lidar com o que você está tentando fazer. Exemplo: executando um servidor de lote de torque com muitos trabalhos nele com poucos núcleos.

Então, se um de seus processos estiver usando uma quantidade crescente de CPU, isso também é uma má indicação de problemas com vazamentos de memória ou também pode ser que você esteja usando componentes chamados Chrome / Firefox :) Na verdade, o Firefox sofreu muito de usar plugins conectados, como o Skype, que levam a transbordamentos em versões mais antigas.

Outro indicador é um grande número de processos estendidos do mesmo tipo, mas nem sempre é um problema.

E um dos primeiros indicadores de problemas é um processo marcado [defunto], já que é então disfuncional, como a maioria das pessoas que eu conheço!

    
por 26.07.2016 / 10:49

Tags