O que significa a utilização de CPU e IO do / proc / loadavg?

1

Nesta página , diz que o primeiro três colunas da saída de / proc / loadavg medem a utilização de CPU e IO dos últimos períodos de um, cinco e 10 minutos.

Um único valor revela a utilização da CPU e do IO? E se eu quiser apenas saber a utilização da CPU? ou apenas a utilização de IO?

Ou, a partir desse único valor, como posso saber o quão pesado é o servidor?

    
por shintaroid 21.09.2017 / 08:28

2 respostas

1

Does a single value reveal both CPU and IO utilization?

Sim, é uma indicação aproximada da utilização combinada de CPU e disco, mas não uma porcentagem. Zero significa que não há carga. Se você tiver um sistema com quatro núcleos de CPU, um valor de quatro significaria que o sistema está totalmente carregado, um valor de oito significaria que o sistema está sobrecarregado. A carga da CPU é uma métrica melhor do que computar 100 - idle CPU porque a última não distingue entre o caso de um sistema estar totalmente carregado e um sistema estar sobrecarregado.

What if I just want to know the CPU utilization?

dê uma olhada na primeira coluna vmstat : r . Mostra o número de threads usando ou aguardando uma CPU. Mesma interpretação do que com a métrica anterior.

or just the IO utilization?

Comece olhando para ìostat output. Descobrir a carga de disco dessas estatísticas é mais complexo do que com a CPU, pois tanto as características do disco (E / S por segundo) quanto o tipo de uso (seqüencial ou aleatório, tamanho de E / S) são importantes.

Or, from that single value, how can I tell how heavy the server is?

A regra básica é se a média de carga é consistentemente maior que o número de núcleos / threads disponíveis para o sistema operacional, o servidor está sobrecarregado.

    
por 21.09.2017 / 08:57
1

Média de carga significa quantos processos estão aguardando na fila. Não é apenas métrica da CPU e não mostra a utilização da CPU em%. Carga média mostra a carga aproximada do sistema.

Veja Média de carga do UNIX para entender melhor.

Neste documento:

  1. The “load” is not the utilization but the total queue length.
  2. They are point samples of three different time series.
  3. They are exponentially-damped moving averages.
  4. They are in the wrong order to represent trend information.

Para calcular a CPU inativa no horário atual, use /proc/stat (extraído de aqui ):

average idle percentage X % = ( idle * 100 ) / ( user + nice + system + idle + iowait + irq + softirq )

Portanto, para calcular a utilização da CPU , use:

grep 'cpu ' /proc/stat | awk '{usage=100-($5*100)/($2+$3+$4+$5+$6+$7+$8)} END {print usage}'

O cálculo da utilização da CPU não é uma tarefa tão fácil quanto parece. Veja o tópico semelhante

Algumas conclusões :

  1. Não analise apenas a utilização da CPU sem outras métricas de hardware / software. Use disco, RAM, uso de rede para uma conclusão completa (e pode ser por carga de processo);
  2. Não conclua com base apenas nos parâmetros de média de carga. Você pode usar a Média de carregamento como ponto de partida para solucionar problemas de desempenho;
  3. Use a abordagem:

se 1min de carga mais do que 5 / 10min de carga - > carga do sistema está crescendo

se 1min de carga menos do que 5 / 10min de carga - > carga do sistema é diminuída

E leia um ótimo artigo: Médias de carga do Linux: resolvendo o mistério

    
por 21.09.2017 / 09:05

Tags