SNMP - Valor da carga do processador da CPU não reflete a realidade

5

Tentando plotar a carga da CPU no meu servidor, com o seguinte hardware: ProLiant DL360p Gen8 (mesmo comportamento no ProLiant DL360 G7).

A máquina está executando o VMWare ESXi5.1

Para criar um pico de CPU eu corro dd if=/dev/zero of=/dev/null , e eu sei que a CPU está sobrecarregada, porque eu posso ver um pico correlacionado nos gráficos exibidos no vCenter.

Noentanto,executandoestesnmpwalk:

snmpwalk-v1-c********192.168.MY_IP1.3.6.1.2.1.25.3.3.1.2

Mostraosseguintesresultados:

iso.3.6.1.2.1.25.3.3.1.2.1=INTEGER:3iso.3.6.1.2.1.25.3.3.1.2.2=INTEGER:2iso.3.6.1.2.1.25.3.3.1.2.3=INTEGER:2iso.3.6.1.2.1.25.3.3.1.2.4=INTEGER:3

EunãoestouolhandoparaoMIBcerto?Eudeveriaestarmultiplicandoissoporumaconstante?

Apropósito,usandooHPAgentlessMonitoringeuconseguialgumasestatísticasdeCPU,masnãooqueeuestavaprocurando,pelomenosnadaqueeupudesseencontrarpassandopor esses MIBs .

    
por Ovesh 10.12.2012 / 09:31

2 respostas

5

Tente usar o utilitário de estresse para gerar carga no Linux, por favor. É muito granular e faz mais sentido do que você está fazendo.

O que vejo você fazendo é gerar uma carga de E / S de encadeamento único em uma máquina virtual de 4 CPUs. O gráfico da CPU que você colou no cliente vSphere mostra uma carga de 25% porque você está apenas sobrecarregando uma das quatro quatro CPU atribuídas à máquina virtual.

Faça o download stress (que está disponível para a maioria das distribuições Linux) e tente com alguns parâmetros específicos. .

Por exemplo, simplesmente executando o seguinte em uma máquina virtual de 4 CPUs:

# stress -c 4
stress: info: [594013] dispatching hogs: 4 cpu, 0 io, 0 vm, 0 hdd

rende ...

    
por 10.12.2012 / 11:52
1

O vmware não coleta essa informação, e não há uma boa maneira de fazê-lo. O problema é que não tem como saber quando você vai perguntar - então, para que isso funcione, ele deve estar sempre com uma média pronta para os últimos 60 segundos. Como você pode perguntar de vez em quando e perguntar depois, ele teria que contar corretamente o tempo de CPU quarenta segundos atrás em direção aos dois intervalos. Essa é uma coisa muito feia e complicada de se fazer.

Apoiar isso adicionaria um alto custo, pois o agente SNMP precisaria constantemente testar o uso da CPU e atualizar vários intervalos, todos em execução ao mesmo tempo.

    
por 10.12.2012 / 12:29