Jusqu'à récemment, je pensais que la moyenne de charge (comme illustré par exemple en haut) était une moyenne mobile sur les n dernières valeurs du nombre de processus dans l'état "exécutable" ou "en cours d'exécution". Et n aurait été défini par la "longueur" de la moyenne mobile: puisque l'algorithme de calcul de la moyenne de charge semble se déclencher toutes les 5 secondes, n aurait été de 12 pour la moyenne de charge de 1 min, 12x5 pour la moyenne de charge de 5 min et 12x15 pour la moyenne de charge de 15 min.
Mais ensuite j'ai lu cet article: http://www.linuxjournal.com/article/9001 . L'article est assez ancien mais le même algorithme est implémenté aujourd'hui dans le noyau Linux. La moyenne de charge n'est pas une moyenne mobile mais un algorithme dont je ne connais pas le nom. Quoi qu'il en soit, j'ai fait une comparaison entre l'algorithme du noyau Linux et une moyenne mobile pour une charge périodique imaginaire:
.
Il ya une énorme différence.
Enfin mes questions sont:
- Pourquoi cette implémentation a-t-elle été choisie par rapport à une vraie moyenne mobile, qui a un vrai sens pour tout le monde?
- Pourquoi tout le monde parle de "1min de charge moyenne" car bien plus que la dernière minute est prise en compte par l'algorithme. (mathématiquement, toutes les mesures depuis le démarrage; en pratique, en tenant compte de l'erreur d'arrondi - encore beaucoup de mesures)
la source
Réponses:
Cette différence remonte à l'original Berkeley Unix, et découle du fait que le noyau ne peut pas réellement garder une moyenne mobile; il lui faudrait pour cela conserver un grand nombre de lectures passées, et surtout dans l'ancien temps, il n'y avait tout simplement pas de mémoire disponible. L'algorithme utilisé à la place a l'avantage que tout le noyau doit conserver est le résultat du calcul précédent.
Gardez à l'esprit que l'algorithme était un peu plus proche de la vérité lorsque les vitesses de l'ordinateur et les cycles d'horloge correspondants étaient mesurés en dizaines de MHz au lieu de GHz; il y a beaucoup plus de temps pour que les écarts se glissent ces jours-ci.
la source
uptime
etw
, l'ont affirmé; vous avez dû regarder les sources du noyau pour découvrir que ce n'était pas vrai.1min/5min/15min
ne raisonnent. Ils déterminent le temps après lequel l'influence de la charge actuelle diminue d'un facteur fixe (probablement e = 2,71 .. ou peut-être 2). Essayez-le.