Comment ont été les pondérations dans le calcul de charge Linux?

Sous Linux, la moyenne de charge serait de 1min / 5min / 15min. La formule utilisée par le kernel est en réalité une moyenne mobile exponentielle.

Si nous définissons cpuload(1) comme le premier calcul de la charge du processeur 1min, et active() comme fonction renvoyant le nombre de processus à l’état “en cours” ou “exécutable” sur le système, alors la formule utilisée par le kernel pour calculer la nième charge du processeur 1min est:

entrer la description de l'image ici

cpuload(0) est 0; c’est la valeur stockée en mémoire avant la première exécution de cpuload() .

Ma question est la suivante: comment la pondération 2 -5.log2 (e) / 60 a- t-elle été choisie? A mon avis, 2 -5/60 aurait été mieux car 1min aurait été la demi-vie du nombre de process (car (2 -5/60 ) 12 = 1/2).


Peut-être est-ce utile si je cpuload(n) formule explicite de cpuload(n) en plus de la définition récursive ci-dessus (clic droit pour la voir en taille réelle):

entrer la description de l'image ici

Considérons un échantillon de charge particulier actif (K) , et combien cet échantillon consortingbue à cpuload (K + d) , pour augmenter les valeurs de d . Il y a quelques observations clés:

  • active (K) est multipliée par un certain poids W (d) pour déterminer sa consortingbution à la cpuload (K + d) .
  • W (d) est toujours inférieur à un.
  • W (d) diminue de façon exponentielle lorsque d augmente.
  • l’arithmétique des ordinateurs a une précision finie.

Ensemble, ces points signifient que dmin est tel que, pour d> dmin , actif (K) W (d) = 0 et si actif (K) n’a pas d’influence sur cpuload (K + d) . En résumé, cpuload (n) est uniquement influencé par les échantillons précédents dmin .

Une autre façon de voir cela est que cpuload (n) oublie les données après un temps défini par

  • l’exposant de décroissance, qui définit dmin , et
  • la fréquence d’échantillonnage.

Cette interprétation finale donne la signification des moyennes de charge de 1 minute, de 5 minutes et de 15 minutes. La décroissance et l’intervalle d’échantillonnage sont choisis de telle sorte que ces moyennes de charge oublient le passé après respectivement 1, 5 et 15 minutes.

Je suppose qu’ils voulaient que la durée de vie moyenne de la consortingbution d’un processus en cours soit d’une minute.