J'essaie de comprendre certaines données qui ont été extraites du SAR. J'ai trois questions principales à ce sujet. En fin de compte, je voudrais déterminer le nombre de processeurs inactifs à chaque intervalle d'échantillonnage sur un cluster de serveurs.
- De nombreux processeurs n'apparaissent pas dans chaque entrée. Est-ce prévu et qu'est-ce que cela signifie exactement? Est-ce lié à # 2?
- Il y a des lignes inutilisées (CPU = U). La documentation indique que "U indique la capacité inutilisée à l'échelle du système". Je ne peux pas vraiment trouver une définition précise de la "capacité inutilisée à l'échelle du système" ou une quelconque définition. Je ne sais pas comment interpréter une ligne qui dit quelque chose comme «la capacité inutilisée était à 70% inactive».
- Enfin, je ne sais pas comment la ligne
-
ouall
est calculée. Je pense que c'est la moyenne de tous les processeurs mais quand je fais le calcul sur tous les processeurs, j'obtiens une réponse très différente de celle qui est sur cette ligne. Quelqu'un peut-il me dire exactement ce qui entre dans ce calcul? En examinant de près cette question relative au SAR, il semble que lesystem-wide
pourcentage d'inactivité est la somme du produit du pourcentage d'inactivité de chaque CPU et de la valeur «physc». Malheureusement, je n'ai pas lephysc
ou entc% (en supposant qu'il y en ait un) donc je ne peux pas le vérifier avec mes propres données. Si c'est correct, cela signifie-t-il que j'ai besoin desphysc
valeurs pour vraiment comprendre le pourcentage d'inactivité?
Voici quelques exemples de ce que je vois. Ce sont tous du même jour.
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
Ces données sont produites par un script qui s'exécute: sar -P ALL 1 1
Il exécute ensuite une commande awk. Je ne suis pas bon avec awk mais ce sont clairement les parties importantes:
Filtre: /System|AIX|^$|%/ {next}
Analyser: {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)}
Cela semble correct en fonction du peu que je comprends de awk et de ce que je vois à partir d'exemples de sortie.
Si je suppose que les valeurs manquantes sont toutes nulles pour le cas 2, la moyenne est de 21, ce qui semble quelque peu cohérent avec le cas 1. Cependant, si je fais cette hypothèse pour le cas 3, j'obtiens 24%, ce qui est complètement en contradiction avec les 85% valeur en pourcentage donnée par sar pour le temps mort total du processeur.
Voici un graphique des captures d'une journée complète (toutes les 30 secondes):
Lorsqu'il y a très peu de temps d'inactivité «à l'échelle du système», la corrélation entre l'inactivité moyenne du processeur et l'inactivité «à l'échelle du système» est presque parfaite. Mais à mesure que le temps d'inactivité «à l'échelle du système» augmente, la corrélation devient beaucoup plus faible. Travailler sur l'hypothèse que ce sont des machines déterministes, cela me dit que les données dont je dispose ne donnent pas une image complète. Mais combien je m'en soucie?
Je ne comprends pas bien pourquoi certains processeurs ne sont pas signalés à chaque point, mais ceux qui manquent ne sont pas distribués de manière uniforme, comme le montrent les exemples ci-dessus. En lisant également ce livre rouge , je suppose que ce doivent être des processeurs logiques et que sans les physc
chiffres, je pense que je ne peux pas faire grand-chose avec ces valeurs. J'ai essayé d'utiliser la U
valeur dans diverses équations mais je n'ai rien trouvé de sensé. Il n'est même pas clair pour moi que le pourcentage de ralenti global peut être pris à sa valeur nominale.
NOTE : Il y a quelque chose qui ne va pas avec la capture de ces données de sar est une réponse tout à fait valide pour # 1, si c'est le cas, elle devrait toujours revenir.
sar -P ALL 1 1
puis utilise awk pour décomposer le nombre de processeurs, puis les pourcentages utilisateur, système, attente d'E / S et inactif. J'ajouterai plus d'informations à votre réponse.
sar -P ALL
directement, plutôt que la sortie de ce script? C'est un script non standard et personne ne peut vous dire ce qu'il fait sans le voir.
sar -P ALL
sortie standard .