A parte superior mostra a carga de 2.5: como posso descobrir quais processos estão aguardando a CPU?

1

Eu tenho uma caixa Linux hospedando um site com muito tráfego baixo. É uma instância "pequena" do Amazon EC2, executando o Ubuntu 10.04. Quando eu corro "top" nele, costumo ver uma carga entre 2 e 3, que na minha experiência é bastante alta. No entanto, parece que não há muita coisa acontecendo na máquina - a CPU está quase sempre ociosa e, ao observar o arquivo apache2 access.log, vejo que não há muitas solicitações sendo enviadas. Como posso descobrir quais processos estão esperando pela CPU, para que eu possa tentar entender por que a métrica de carga é tão alta?

    
por jfrank 17.08.2010 / 18:36

2 respostas

3

Usando a parte superior você pode ver quais segmentos estão sendo executados e quais estão dormindo. Isso deve permitir que você pelo menos saiba o que está drenando seus recursos se estivermos falando sobre um gargalo da CPU.

[xxx@absynthe proc]$ top -H

Deve abrir uma tela como esta:

top - 17:54:38 up 37 min,  2 users,  load average: 0.03, 0.06, 0.07
Tasks: 338 total,   2 running, 336 sleeping,   0 stopped,   0 zombie
Cpu(s):  4.1%us,  2.3%sy,  0.0%ni, 92.1%id,  1.5%wa,  0.0%hi,  0.0%si,  0.0%st
Mem:   3852932k total,  1596468k used,  2256464k free,    47108k buffers
Swap:  5963768k total,        0k used,  5963768k free,   681728k cached

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND                                                                                                                                           
 1853 root      20   0  196m  38m  15m S  9.7  1.0   1:57.58 Xorg                                                                                                                                              
 2186 xxx       -6   0  564m 8828 7216 S  3.9  0.2   0:43.69 pulseaudio                                                                                                                                        
 2611 xxx       20   0 1095m 235m  27m S  3.9  6.3   2:29.52 firefox                                                                                                                                           
 2179 xxx        9 -11  564m 8828 7216 S  1.9  0.2   0:38.34 pulseaudio                                                                                                                                        
 2671 xxx       20   0 1087m  43m  18m S  1.9  1.2   0:06.06 plugin-containe                                                                                                                                   
 2820 xxx       20   0 1275m  67m  23m S  1.9  1.8   0:13.13 souphttpsrc13:s                                                                                                                                   
 2824 xxx       20   0  315m  13m 9492 S  1.9  0.4   0:02.35 gnome-terminal                                                                                                                                    
 3114 xxx       20   0 15088 1300  820 R  1.9  0.0   0:00.02 top                                                                                                                                               
    1 root      20   0 19236 1440 1152 S  0.0  0.0   0:01.07 init                                                                                                                                              
    2 root      20   0     0    0    0 S  0.0  0.0   0:00.00 kthreadd                                                                                                                                          
    3 root      RT   0     0    0    0 S  0.0  0.0   0:00.00 migration/0                                                                                                                                       
    4 root      20   0     0    0    0 S  0.0  0.0   0:00.17 ksoftirqd/0                                                                                                                                       
    5 root      RT   0     0    0    0 S  0.0  0.0   0:00.00 watchdog/0                                                                                                                                        
    6 root      RT   0     0    0    0 S  0.0  0.0   0:00.00 migration/1                                                                                                                                       

A coluna chamada S (que é a 8ª da direita) mostra S para threads de espera e R para threads em execução. Você pode escolher a ordem de classificação pressionando F (capital) e escolhendo o campo Status do processo. Você pode então inverter a ordem de classificação pressionando R (capital) para poder ver os tópicos em execução primeiro.

Se o seu problema não for um afunilamento da CPU, precisaremos de mais algumas informações para ajudá-lo. Talvez você possa postar seu top como eu fiz no exemplo acima.

Espero que isso ajude.

EDITAR:

Se você quiser saber se está enfrentando algum tipo de afunilamento de E / S, pode emitir o seguinte comando: vmstat -s e procurar pelos ticks da CPU de espera do IO. Se, executando o comando com um intervalo de alguns segundos, o valor subir muito, você pode estar tendo um afunilamento de E / S. Nesse caso, talvez seja melhor usar o iotop para ver quais processos estão usando mais recursos de E / S.

    
por 17.08.2010 / 19:02
1

O indicador de carga não é causado apenas pelo alto uso da CPU. Os processos podem esperar por outros motivos, como E / S de disco e rede.

Em instâncias pequenas do Amazon EC2, a E / S de disco é muito ruim, especialmente / dev / sda2.

Você pode executar o iotop (apt-get instalar o iotop no debian / ubuntu) para ver qual processo consome E / S.

    
por 17.08.2010 / 19:27

Tags