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
sortie standard .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.Réponses:
La sortie que vous avez fourni est différent de la norme
sar -P ALL
ou lasar -u
sortie. Je ne sais pas si vous l'avez formaté à la main ou si vous l'exécutez via un autre outil, mais je pense qu'il y a suffisamment d'informations pour le comprendre.Voici les informations importantes, obtenues à partir de la page de manuel de
sar
Étant donné que vous exécutez dans un cluster, il semble assez sûr de supposer que vous utilisez des machines SMP.
Notez que dans les exemples 2 et 3, seulement 12 des 24 cœurs signalent des statistiques. Si vous supposez que ces cœurs sont désactivés, comme mentionné dans la page de manuel, les statistiques ont du sens.
Mettons à jour vos données comme suit, pour indiquer un noyau désactivé avec
-
Ensuite, nous pouvons utiliser ce qui suit pour calculer les moyennes (ceci est un résumé rapide que j'ai écrit, je suis sûr que quelque chose de mieux pourrait être écrit.)
Notez que le nombre de cœurs dans les exemples 2 et 3 est de 12 et que les moyennes correspondent à ce que vous voyez dans votre exemple de sortie.
Il semble qu'à un moment donné entre votre premier et votre deuxième cas, la moitié de vos cœurs de processeur ont été désactivés.
Un bref résumé de vos questions:
U
ligne moyenne est différente de laU
page de manuel. Les élémentsU
mentionnés dans la page de manuel doivent apparaître dans la colonne ID du processeur.sar
sortie standard et il n'y a pas suffisamment d'informations fournies pour déterminer à quoi se réfère la ligneU
ouall
sur la ligne moyenne. Le premier nombre semble être le% inactif sur les cœurs actifs.la source
U
etall
proviennent de sar sous forme de lignes. Je les ai éclatés dans ma réponse, car ils diffèrent fondamentalement des choses par rapport aux valeurs du processeur, d'après ce que je comprends.