Inspecter les journaux du planificateur avec dmesg
Dans cette étape finale, nous allons examiner les messages du noyau liés au planificateur en utilisant la commande dmesg
. dmesg
est une commande qui affiche les messages du tampon circulaire du noyau (kernel ring buffer). Ces messages sont générés par le noyau lors du démarrage et de l'exécution du système et peuvent contenir des informations précieuses sur le matériel, les pilotes et les événements système, y compris les activités du planificateur.
Alors que sysctl
et /proc/sys
montrent la configuration actuelle, dmesg
peut parfois afficher des messages liés à l'initialisation du planificateur ou à des événements importants.
Pour afficher les messages du noyau, tapez la commande suivante :
dmesg
Cela produira probablement une sortie très longue, car elle affiche tous les messages du noyau depuis le démarrage du système. Pour trouver des messages spécifiquement liés au planificateur, nous pouvons utiliser la commande grep
pour filtrer la sortie. Nous allons rechercher les lignes contenant le mot "sched".
Tapez la commande suivante :
dmesg | grep sched
Le symbole |
est appelé un tuyau (pipe). Il prend la sortie de la commande de gauche (dmesg
) et l'envoie en tant qu'entrée à la commande de droite (grep sched
). grep sched
recherche ensuite les lignes contenant "sched" dans l'entrée qu'il reçoit.
Vous pourriez voir une sortie similaire à celle-ci, montrant des messages liés au planificateur lors du démarrage du système :
[ 0.000000] Linux version ... (gcc version ...) #... SMP ...
[ 0.000000] Command line: BOOT_IMAGE=/boot/vmlinuz-... root=... ro quiet splash vt.handoff=...
[ 0.000000] Kernel command line: BOOT_IMAGE=/boot/vmlinuz-... root=... ro quiet splash vt.handoff=...
[ 0.000000] PID scheduler: ...
[ 0.000000] Mount-cache hash table entries: ... (order: ..., 65536 bytes, linear)
[ 0.000000] Mountpoint-cache hash table entries: ... (order: ..., 65536 bytes, linear)
[ 0.000000] CPU: Testing write buffer coherency: ...
[ 0.000000] smpboot: CPU0: ...
[ 0.000000] setup_percpu: System has ... CPUs.
[ 0.000000] percpu: Embedded ... pages/cpu s...
[ 0.000000] pcpu: PCPU: ...
[ 0.000000] Built 1-level schedule group tree
[ 0.000000] rcu: Hierarchical RCU implementation.
[ 0.000000] rcu: RCU calculated value of scheduler-enlistment delay is ...
[ 0.000000] rcu: Adjusting scheduler-enlistment delay with ...
[ 0.000000] rcu: RCU restricting CPUs from NR_CPUS=... to nr_cpu_ids=...
[ 0.000000] rcu: rcu_sched detected stalls on CPUs/tasks:
...
Encore une fois, la sortie exacte variera. Cette commande est utile pour diagnostiquer des problèmes ou comprendre comment le noyau a initialisé le planificateur.
Vous avez maintenant appris trois façons différentes d'obtenir des informations sur le planificateur du noyau Linux : en utilisant sysctl
pour les paramètres actuels, en inspectant les fichiers dans /proc/sys/kernel/
et en vérifiant les messages du noyau avec dmesg
.
Cliquez sur Continuer pour terminer ce laboratoire.