Zabbix – Load CPU [system.cpu.load] vs Utilização CPU [system.cpu.util]

Primeiramente precisamos entender que Load CPU e Utilização CPU são dois indicadores distintos que juntos auxiliam numa análise concreta do uso de CPU, vamos ao entendimento dos conceitos.

1 - Load CPU ou Load Average

É a carga de processamento, ou seja, número de processos em execução ou enfileirados para execução. A visão da carga é tida pelo valor do Load dividido pela quantidade de CPUs, caso esteja acima indica uma sobrecarga de processos e uma necessidade de mais CPU no host.

Se possuo 1 CPU e o Load esta em 0.1 indica que todos processos estão em execução e não estou tendo processos em espera na fila para processamento. Agora se possuo 1 CPU e Load 11.3 indica que estou tendo processos em espera na fila.

Abaixo uma imagem para melhor entendimento e abstração quando o Load esta abaixo da quantidade de CPUs e quando esta acima que no caso pensando em carros e num túnel teremos um engavetamento, leve em consideração 1 CPU:

load-averageNo Load temos 3 visões:

 

In UNIX computing, the system load is a measure of the amount of computational work that a computer system performs. The load average represents the average system load over a period of time. It conventionally appears in the form of three numbers which represent the system load during the last one-, five-, and fifteen-minute periods.

https://en.wikipedia.org/wiki/Load_(computing)

2 - Utilização CPU

Utilização de CPU é o total de ciclos por segundo do processador em execução atual, ou seja, a porcentagem de tempo requerida do cpu para executar uma ou um conjunto de tarefas.

utilizacao

CPU time (or process time) is the amount of time for which a central processing unit (CPU) was used for processing instructions of a computer program or operating system, as opposed to, for example, waiting for input/output (I/O) operations or entering low-power (idle) mode. The CPU time is measured in clock ticks or seconds. Often, it is useful to measure CPU time as a percentage of the CPU's capacity, which is called the CPU usage.

https://en.wikipedia.org/wiki/CPU_time

The concept of CPU utilization used to be simple. Assume you have a single core processor fixed at a frequency of 2.0 GHz. CPU utilization in this scenario is the percentage of time the processor spends doing work (as opposed to being idle). If this 2.0 GHz processor does 1 billion cycles worth of work in a second, it is 50% utilized for that second. Fairly straightforward.

https://blogs.technet.microsoft.com/winserverperformance/2009/08/06/interpreting-cpu-utilization-for-performance-analysis/

 3 - Cenários

Após entendimento do conceito dos dois indicadores podemos pensar em alguns cenários:

Cenário 1 - Alta porcentagem de utilização e load abaixo da quantidade de cpus: Um processo ou alguns processos requerendo muito tempo de cpu para execução das tarefas e o load com carga abaixo da quantidade de cpus. Num ambiente real podemos pensar em um servidor com 5 usuários conectados onde 1 usuário está executando uma tarefa de cópia de uma pasta com uma quantidade enorme de arquivos.

utilizacao-alta_load-baixo

Cenário 2 – Load alto e baixa porcentagem de utilização: Load alto indica alta carga/número de processos em execução e processos enfileirados aguardando execução e baixa utilização do cpu para execução das tarefas. Podemos pensar num servidor com 5 usuários conectados onde 1 usuário clica 20 vezes para abrir o navegador e clica 20 vezes para abrir o Libreoffice Writer (pow isso tem muito em kkkkkk).

load-alto_utilizacao-baixoCenário 3 – Load e porcentagem de utilização alta: Ai neste cenário podemos pensar nos 5 usuários clicando 20 vezes no navegador, assistindo vídeos, editando imagens, baidu executando, copiando os filmes, windows update, etc... 8)

load-alto_utilizacao-alta


Referências: