Estoy tratando de entender algunos datos que se han extraído de SAR. Tengo tres preguntas principales sobre esto. En última instancia, me gustaría determinar cuántas CPU estaban inactivas en cada intervalo de muestreo en un grupo de servidores.
- Muchas de las CPU no se muestran en cada entrada. ¿Es esto esperado y qué significa eso exactamente? ¿Está relacionado con el n. ° 2?
- Hay líneas no utilizadas (CPU = U). La documentación dice "U indica la capacidad no utilizada de todo el sistema". Realmente no puedo encontrar una definición precisa de "capacidad no utilizada en todo el sistema" o ninguna definición. No estoy seguro de cómo interpretar una línea que dice algo como "la capacidad no utilizada estaba inactiva en un 70%".
- Por último, no estoy seguro de cómo se calcula la línea
-
oall
. Creo que es el promedio de todas las CPU, pero cuando hago los cálculos en todas las CPU, obtengo una respuesta muy diferente de lo que está en esa línea. ¿Alguien puede decirme exactamente qué implica ese cálculo? Mirando de cerca esta pregunta relacionada sobre SAR , parece que elsystem-wide
porcentaje de inactividad es la suma del producto del porcentaje de inactividad de cada CPU y el valor 'físico'. Desafortunadamente, no tengo elphysc
o entc% (suponiendo que haya uno), así que no puedo verificar esto con mis propios datos. Si eso es correcto, ¿significa que necesito losphysc
valores para comprender realmente el porcentaje inactivo?
Aquí hay algunos ejemplos de lo que estoy viendo. Todos estos son del mismo día.
CPU | Idle CPU | Idle CPU | Idle
---------- ---------- ----------
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 12 | 0 12 | 38
10 | 33 16 | 12 16 | 37
11 | 64 20 | 3 20 | 42
12 | 6 U | 95 U | 97
13 | 6 - | 15 - | 85
14 | 6
15 | 6
16 | 12
17 | 15
18 | 62
19 | 69
20 | 7
21 | 7
22 | 6
23 | 7
U | 80
- | 15
case 1: avg(24): 22
case 2: avg(12): 42
case 3: avg(12): 48
Estos datos son producidos por un script que se ejecuta: sar -P ALL 1 1
luego ejecuta un comando awk. No soy bueno con awk, pero estas son claramente las partes importantes:
Filtrar: /System|AIX|^$|%/ {next}
Analizar gramaticalmente: {k=0;if(NR==7) k=1} {sub("^-", "all", $1); cpu=$(1+k); user=$(2+k); sys=$(3+k); io=$(4+k); idle=$(5+k)}
Esto parece correcto según lo poco que entiendo de awk y lo que veo de los ejemplos de la salida.
Si supongo que los valores faltantes son todos cero para el caso 2, el promedio es 21, lo que parece algo consistente con el caso 1. Sin embargo, si hago esa suposición para el caso 3, obtengo el 24%, que está completamente en desacuerdo con el 85% valor porcentual dado por sar para la CPU inactiva general
Aquí hay un gráfico de las capturas de un día completo (cada 30 segundos):
Cuando hay muy poco tiempo de inactividad 'en todo el sistema', la correlación entre la inactividad promedio de la CPU y la inactiva 'en todo el sistema' es casi perfecta. Pero a medida que aumenta el tiempo de inactividad 'en todo el sistema', la correlación se vuelve mucho más débil. Trabajando con el supuesto de que se trata de máquinas deterministas, eso me dice que los datos que tengo no dan la imagen completa. ¿Pero cuánto me importa?
No entiendo completamente por qué algunas CPU no se informan en cada punto, pero las que faltan no se distribuyen uniformemente como se ve en los ejemplos anteriores. Además, al leer este libro rojo , supongo que deben ser CPU lógicas y que sin los physc
números, creo que no puedo hacer mucho con estos valores. He tratado de usar el U
valor en varias ecuaciones pero no he encontrado nada sensato. Ni siquiera está claro para mí que el porcentaje de inactividad general se pueda tomar al pie de la letra.
NOTA : Hay algo mal con la captura de estos datos de sar es una respuesta completamente válida para el n. ° 1, si es el caso, siempre debe regresar.
sar -P ALL 1 1
y luego usa awk para dividir el número de CPU y luego el usuario, el sistema, la espera de E / S y los porcentajes de inactividad. Agregaré más información a su respuesta.
sar -P ALL
directamente, en lugar de la salida de este script? Es un script no estándar y nadie puede decirte lo que hace sin verlo.
sar -P ALL
salida estándar .