29.3. Configuration du temps de réponse du noyau
Par défaut, Red Hat Enterprise Linux 9 utilise un noyau "tickless", qui n'interrompt pas les processeurs en veille afin de réduire la consommation d'énergie et de permettre aux nouveaux processeurs de tirer parti des états de sommeil profond.
Red Hat Enterprise Linux 9 propose également une option tickless dynamique, qui est utile pour les charges de travail sensibles à la latence, telles que l'informatique à haute performance ou l'informatique en temps réel. Par défaut, l'option tickless dynamique est désactivée. Red Hat recommande d'utiliser le profil cpu-partitioning TuneD pour activer l'option tickless dynamique pour les noyaux spécifiés comme isolated_cores.
Cette procédure décrit comment activer manuellement et de manière persistante le comportement dynamique sans tic-tac.
Procédure
Pour activer le comportement dynamique sans tic-tac dans certains cœurs, spécifiez ces cœurs sur la ligne de commande du noyau avec le paramètre
nohz_full. Sur un système à 16 cœurs, activez l'option de noyaunohz_full=1-15:grubby --update-kernel=ALL --args="nohz_full=1-15"
# grubby --update-kernel=ALL --args="nohz_full=1-15"Copy to Clipboard Copied! Toggle word wrap Toggle overflow Cela permet un comportement dynamique sans tic-tac sur les cœurs
1à15, en déplaçant tout le chronométrage vers le seul cœur non spécifié (cœur0).Lorsque le système démarre, déplacez manuellement les threads
rcuvers le cœur non sensible à la latence, en l'occurrence le cœur0:for i in `pgrep rcu[^c]` ; do taskset -pc 0 $i ; done
# for i in `pgrep rcu[^c]` ; do taskset -pc 0 $i ; doneCopy to Clipboard Copied! Toggle word wrap Toggle overflow -
Facultatif : Utilisez le paramètre
isolcpussur la ligne de commande du noyau pour isoler certains cœurs des tâches de l'espace utilisateur. Facultatif : Définissez l'affinité du CPU pour les threads du noyau
write-back bdi-flushsur le noyau de gestion :echo 1 > /sys/bus/workqueue/devices/writeback/cpumask
echo 1 > /sys/bus/workqueue/devices/writeback/cpumaskCopy to Clipboard Copied! Toggle word wrap Toggle overflow
Verification steps
Une fois le système redémarré, vérifiez si
dynticksest activé :journalctl -xe | grep dynticks
# journalctl -xe | grep dynticks Mar 15 18:34:54 rhel-server kernel: NO_HZ: Full dynticks CPUs: 1-15.Copy to Clipboard Copied! Toggle word wrap Toggle overflow Vérifiez que la configuration dynamique sans tic-tac fonctionne correctement :
perf stat -C 1 -e irq_vectors:local_timer_entry taskset -c 1 sleep 3
# perf stat -C 1 -e irq_vectors:local_timer_entry taskset -c 1 sleep 3Copy to Clipboard Copied! Toggle word wrap Toggle overflow Cette commande mesure les tics de l'unité centrale 1 tout en demandant à l'unité centrale 1 de dormir pendant 3 secondes.
La configuration par défaut de la minuterie du noyau affiche environ 3100 tics sur un processeur normal :
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Avec le noyau dynamique sans tic-tac configuré, vous devriez voir environ 4 tics à la place :
Copy to Clipboard Copied! Toggle word wrap Toggle overflow