A saída que você forneceu parece diferente da saída padrão sar -P ALL
ou sar -u
. Não tenho certeza se você o formatou manualmente ou se você está usando outra ferramenta, mas acho que há informações suficientes para descobrir isso.
Aqui está a informação importante, obtida da página man do sar
Note: On SMP machines a processor that does not have any activity at all (0.00 for every field) is a disabled (offline) processor.
Como você está executando em um cluster, parece bastante seguro assumir que você está usando máquinas SMP.
Observe que, nos exemplos 2 e 3, apenas 12 dos 24 núcleos estão relatando estatísticas. Se você assumir que esses núcleos estão desativados, como mencionado na página do manual, as estatísticas farão sentido.
Vamos atualizar seus dados da seguinte maneira, para indicar um núcleo desativado com -
0 | 8 0 | 15 0 | 17
1 | 25 1 | 94 1 | 32
2 | 79 2 | 100 2 | 97
3 | 62 3 | 99 3 | 71
4 | 5 4 | 13 4 | 5
5 | 7 5 | 13 5 | 23
6 | 6 6 | 99 6 | 71
7 | 7 7 | 44 7 | 98
8 | 11 8 | 12 8 | 48
9 | 17 9 | - 9 | -
10 | 33 10 | - 10 | -
11 | 64 11 | - 11 | -
12 | 6 12 | 0 12 | 38
13 | 6 13 | - 13 | -
14 | 6 14 | - 14 | -
15 | 6 15 | - 15 | -
16 | 12 16 | 12 16 | 37
17 | 15 17 | - 17 | -
18 | 62 18 | - 18 | -
19 | 69 19 | - 19 | -
20 | 7 20 | 3 20 | 42
21 | 7 21 | - 21 | -
22 | 6 22 | - 22 | -
23 | 7 23 | - 23 | -
Então podemos usar o seguinte para calcular as médias (este é um rápido oneliner que eu escrevi, tenho certeza de que algo melhor poderia ser escrito.)
$ awk '{idle = $3; output += idle; if (idle >= 0) {cores += 1} } END {printf "Ave idle%%: %f Cores: %d\n", output / cores, cores }' input_file
Ave idle%: 22.208333 Cores: 24
$ awk '{idle = $6; output += idle; if (idle >= 0) {cores += 1} } END {printf "Ave idle%%: %f Cores: %d\n", output / cores, cores }' input_file
Ave idle%: 42.000000 Cores: 12
$ awk '{idle = $9; output += idle; if (idle >= 0) {cores += 1} } END {printf "Ave idle%%: %f Cores: %d\n", output / cores, cores }' input_file
Ave idle%: 48.250000 Cores: 12
Observe que o número de núcleos no exemplo 2 e 3 é 12 e as médias correspondem ao que você vê na saída de exemplo.
Parece que, em algum momento entre o primeiro e o segundo caso, metade do seu núcleo de CPU foi desativado.
Um resumo rápido das suas perguntas:
- A falta de dados provavelmente significa que o núcleo do processador está desativado.
- O
U
na linha média é diferente doU
nessa página do manual. OU
referido na página man deve aparecer sob a coluna ID do processador. - A saída que você forneceu é diferente da saída
sar
padrão e não há informações suficientes fornecidas para determinar a que aU
ouall
na linha média se refere. O primeiro número parece ser o% ocioso nos núcleos ativos.