Como interpretar este comando top

2
top - 04:36:16 up 32 days,  2:33,  1 user,  load average: 251.72, 250.54, 231.19
Tasks: 785 total, 249 running, 522 sleeping,   2 stopped,  12 zombie
Cpu(s):  8.9%us, 90.5%sy,  0.4%ni,  0.0%id,  0.0%wa,  0.0%hi,  0.2%si,  0.0%st
Mem:  16313868k total,  7021336k used,  9292532k free,   432196k buffers
Swap:  4194296k total,   295012k used,  3899284k free,   514320k cached

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
18873 nudenude  20   0 97.8m  26m 4944 R  4.0  0.2   0:09.35 php
18140 nudenude  20   0 93984  22m 4940 R  3.7  0.1   0:11.04 php
18178 nudenude  20   0 99.6m  26m 4912 R  3.7  0.2   0:11.11 php
18537 nudenude  20   0  100m  26m 4936 R  3.7  0.2   0:10.31 php
18726 nudenude  20   0 98.3m  25m 4868 R  3.7  0.2   0:09.82 php
18977 nudenude  20   0  101m  25m 4952 R  3.7  0.2   0:09.14 php
19049 nudenude  20   0 99.5m  28m 4920 R  3.7  0.2   0:08.87 php
19852 nudenude  20   0  100m  30m 4912 R  3.7  0.2   0:07.08 php
20504 nudenude  20   0 93024  18m 4880 R  3.7  0.1   0:04.86 php
20562 nudenude  20   0  100m  31m 4940 R  3.7  0.2   0:04.73 php
20681 nudenude  20   0 90912  14m 4940 R  3.7  0.1   0:04.40 php
20685 nudenude  20   0 90656  15m 4928 R  3.7  0.1   0:04.38 php

Algumas coisas são estranhas.

Por que o sistema utiliza toneladas de CPU para% sy?

Parece-me que as tarefas usam muita memória virtual, embora ainda haja muita memória sobrando. Então, eu me pergunto por quê?

Além disso, o que 15m, 14m significa em res e VIRT. Nada é mostrado no topo do homem.

Eu verifiquei o link e ele não é exibido.

Nota: a carga costumava ser de 50%. Além disso, a coluna VIRT é geralmente 0. No entanto, de vez em quando vai para este modo preso onde 90% da CPU é usada pelo kernel. Não sei o que diabos esse kernel está fazendo.

muito pouca CPU é usada pelos usuários. Não é de admirar que a carga seja extremamente alta. Mas o que? O que o kernel está fazendo >

    
por user4951 16.02.2013 / 12:41

2 respostas

3

Estou copiando isso de uma página man que escrevi para plog , já que eu estava tentando deixar claro:

It is important to understand the difference between virtual address space and physical memory in interpreting some of the above statistics. As the name implies, virtual address space is not real; it’s basically a map of all the memory currently allocated to a process. The limit on the size of this map is the same for each processes (generally, 2-4 GB), and it is not accumulated (ie, you may have dozens or hundreds of processes, each with its own 2-4 GB virtual address space, on a system that only actually has 512 MB of physical memory).

Data cannot actually be stored or retrieved from virtual address space; real data requires real, physical memory. It is the kernel’s job to manage one in relation to another. Virtual space stats (VirtualSz, Data+Stack, and Priv&Write) are useful for considering the structure of a process and the relationship to physical memory use, but with regard to amount of RAM actually used, the physical memory stats (ResidentSz, Share, and Proportion) are what counts.

Top não tem todas essas métricas, mas a pontuação da VIRT é o espaço de endereço virtual, RES refere-se à memória física, assim como o SHR. Se você estiver preocupado com o uso relativo de memória (ou seja, um processo comparado a outro), a pontuação do RES é mais relevante.

Certas partes do VIRT são relevantes em relação a outros processos; viseiras como contentores de limite openVZ baseados na quantidade total de espaço de endereço gravável privado , não em RSS. Top não reporta isso, mas pmap e plog do (veja a manobra de plog de "Priv & Write"; isso foi realmente parte do meu motivo ao escrevê-lo).

    
por 16.02.2013 / 14:43
1

Como por saída do seu top, parece que há problema em seus scripts PHP, você pode verificar

  • verifique se o script php está funcionando corretamente ou não
  • verificar logs de erros do apache
  • verifique a entrada do cron algumas vezes, muitos scripts PHP são executados através do cron
  • também tenta descobrir o motivo dos processos zumbis
  • sintonize o apache e o php

Tenho certeza que alta carga por causa do php, você pode simplesmente matar processos PHP executando

killall -9 php Ou pkill -9 php depois Observe na parte superior.

    
por 16.02.2013 / 18:01

Tags