Por que o monitoramento ec2 mostra 100% da CPU e apenas 20%?

10

Estou executando um script python em uma instância ec2 que insere linhas em um banco de dados em outra instância. No monitoramento do ec2, vi uma utilização de 100% da CPU, enquanto o top mostra apenas 20% para o processo python. O que está faltando no topo? Sobrecarga de rede?

RickyA
fonte
E quanto a todos os outros processos?
Ladadadada
Em torno de 0% de utilização
RickyA
Estou também no dillima, eu envio o meu comando TOP reprot para o cliente :)
Manish Shrivastava

Respostas:

18

Os dados expostos por topgeralmente são insuficientes ou enganosos em ambientes virtualizados como o Amazon EC2 e a porcentagem relatada depende do tipo de instância e da utilização do núcleo do processador subjacente (que geralmente não corresponde ao hardware virtualizado que você recebe do hypervisor), entre outras coisas - o que você está vendo é provavelmente causado pelo respectivo tempo de roubo da CPU, conforme exposto na maioria das ferramentas de monitoramento Unix / Linux atualmente - veja, por exemplo, as colunas% steal ou st in sarou top:

st - Steal Time
A quantidade de CPU 'roubada' desta máquina virtual pelo hypervisor para outras tarefas (como executar outra máquina virtual).

A postagem do blog sobre monitoramento EC2: o caso de CPU roubada fornece uma boa exploração e ilustração deste tópico:

Quando o comando top exibe 40% da CPU ocupada, mas o CloudWatch diz que o servidor está no máximo em 100% - de que lado você está? A resposta é simples (o CloudWatch está correto, o topo não está) [...]

Observe que essa métrica do hipervisor parece ser (facilmente) acessível apenas em sistemas Unix / Linux, mas não parece observável no Windows (ainda); veja minha pergunta. Existe um equivalente do Windows para 'CPU steal time' do Windows? para saber mais sobre esse problema.

Steffen Opel
fonte
2
Obrigado pelo post do blog. Isso realmente deixa claro. É muito bom saber disso, pois estou prestes a lançar o Ganglia, e seria uma pena medir as métricas erradas. Meça% idletime!
RickyA
No meu caso, o cloudwatch também está relatando o uso de rede de 3mb / s, mas quando olho no meu servidor (com iftop, iptraf, netstat, etc.), vejo que a única coisa com uma conexão de rede é o meu ssh no servidor. Que eu realmente dúvida está usando 3MB / s ...
Benubird
-2

A Amazon provavelmente verifica a carga e não usa porcentagem do TOP. Se você tiver dois processos na CPU, eles poderão ser utilizados em 20%, mas você poderá ter a carga 2.

MartinSVK
fonte
Eu não sei o que você quer dizer com carga de 2 ...
RickyA
Você pode ter a carga do sistema em 2. Dois processos na CPU, mas com baixa utilização.
MartinSVK