De acordo com o link ssCpuUser
, ssCpuSystem
, ssCpuIdle
, etc são preteridos em favor das variantes cruas ( ssCpuRawUser
, etc).
Os valores anteriores (que não cobrem coisas como nice, wait, kernel, interrupt, etc) retornaram um valor percentual:
The percentage of CPU time spent processing user-level code, calculated over the last minute.
This object has been deprecated in favour of '
ssCpuRawUser(50)
', which can be used to calculate the same metric, but over any desired time period.
Os valores brutos retornam o número "bruto" de pulsos que a CPU gastou:
The number of 'ticks' (typically 1/100s) spent processing user-level code.
On a multi-processor system, the '
ssCpuRaw*
' counters are cumulative over all CPUs, so their sum will typically be N*100 (for N processors).
Minha pergunta é: como você transforma o número de ticks em porcentagem?
Ou seja, como você sabe quantos ticks por segundo (normalmente - o que implica nem sempre - 1 / 100s, o que significa 1 a cada 100 segundos ou que um tique representa 1 / 100th de um segundo).
Eu imagino que você também precisa saber quantas CPUs existem ou você precisa buscar todos os valores da CPU para adicioná-los todos juntos. Eu não consigo encontrar um MIB que lhe dá um valor inteiro para # de CPUs, o que torna a rota antiga inábil. A última rota parece não ser confiável porque alguns dos números se sobrepõem ( às vezes ). Por exemplo, ssCpuRawWait
tem o seguinte aviso:
This object will not be implemented on hosts where the underlying operating system does not measure this particular CPU metric. This time may also be included within the '
ssCpuRawSystem(52)
' counter.
Alguma ajuda seria apreciada. Em todos os lugares parece apenas dizer que% está obsoleto porque pode ser derivado, mas não encontrei nenhum lugar que mostre a maneira padrão oficial de realizar essa derivação.
O segundo componente é que esses "ticks" parecem ser cumulativos, em vez de ao longo de algum período de tempo. Como faço para amostrar valores ao longo de algum período de tempo?
A informação final que eu quero é:% de usuário, sistema, ocioso, legal (e idealmente roubar, embora não pareça haver um MIB padrão para isso) "atualmente" (nos últimos 1-60s provavelmente ser suficiente, com uma preferência por períodos de tempo menores).
Tags monitoring cpu snmp nagios