Comment NOHZ = On affecte do_timer dans le noyau Linux
Dans une expérience simple j'ai mis NOHZ=OFF
et utilisé printk
impression que, souvent, le do_timer
fonction est appelée. Elle est appelée toutes les 10 ms sur ma machine.
Toutefois, si NOHZ=ON
alors il y a beaucoup de gigue dans la façon do_timer
est appelée. La plupart du temps, il est appelé toutes les 10 ms, mais il y a des moments où il passe complètement à côté du délais.
J'ai fait des recherches sur les deux do_timer
et NOHZ. do_timer
est la fonction de responsable de la mise à jour de jiffies
valeur et est également responsable de la " round-robin des processus.
NOHZ commutateurs de fonction au large de la hi-res des minuteries sur le système.
Ce que je suis incapable de comprendre, c'est comment peut-salut-res minuteries affecter la do_timer
? Même si hi-res matériel est en état de veille de la persistance de l'horloge est plus que capable d'exécuter do_timer
toutes les 10 mme. Deuxièmement, si do_timer
n'est pas en cours d'exécution lorsque il se doit, cela signifie que certains processus ne sont pas de l'obtention de leur temps partagé, alors qu'ils devraient idéalement être de se. Beaucoup de googler ne montrent que, pour beaucoup de gens de nombreuses applications de commencer à travailler beaucoup mieux lorsque NOHZ=OFF
.
Pour faire une longue histoire courte, comment ne NOHZ=ON
affecter do_timer
?
Pourquoi ne do_timer
à côté de ses délais?
source d'informationauteur Eastern Monk | 2012-03-19
Vous devez vous connecter pour publier un commentaire.
D'abord, permet de comprendre ce qu'est une
tickless kernel
(NOHZ=On
ouCONFIG_NO_HZ
) et quelle a été la motivation de l'introduire dans le Noyau Linux de2.6.17
De http://www.lesswatts.org/projects/tickless/index.php,
Si la réduction de la consommation d'énergie a été l'une des motivations principales du noyau tickless. Mais comme il va, la plupart du temps, la Performance prend un coup avec la diminution de la consommation d'énergie. Pour les ordinateurs de bureau, la performance est extrêmement préoccupante et donc vous voyez que, pour la plupart d'entre eux
NOHZ=OFF
fonctionne assez bien.Dans Ingo Molnar propres mots
Maintenant, permet d'essayer de répondre à vos questions-
Si un système de prise en charge des hautes-res les minuteries, les interruptions du timer peut se produire plus fréquemment qu'à l'habitude
10ms
sur la plupart des systèmes. j'.e ces minuteries d'essayer de rendre le système plus réactif en exploitant les capacités du système et par les interruptions du timer de cuisson encore plus rapide, disons tous les100us
. Donc, avecNOHZ
option, ces horloges sont refroidis et donc la baisse de l'exécution dedo_timer
Oui il est capable. Mais l'intention de
NOHZ
est exactement le contraire. Pour éviter de fréquentes interruptions du timer!Comme la caf noté dans les commentaires,
NOHZ
ne cause pas de processus pour obtenir planifiés moins souvent, parce qu'il ne débute lorsque le PROCESSEUR est inactif - en d'autres termes, lorsque aucun processus n'est préférence d'heure. Seul le processus de la comptabilité trucs va être fait à une période de retard.Comme indiqué, c'est la conception de
NOHZ
Je vous suggère d'aller à travers le tique-sched.c les sources du noyau en tant que point de départ. Recherche pour
CONFIG_NO_HZ
et essayez de comprendre la nouvelle fonctionnalité ajoutée pour leNOHZ
fonctionVoici un test effectué pour mesurer la L'Impact d'un Noyau Tickless