Le problème
Occasionnellement INFO les messages sont enregistrés dans /var/log/messages tels que :
Apr 19 03:33:22 host kernel: INFO: task kjournald:2046 blocked for more than 120 seconds. Apr 19 03:33:22 host kernel: "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message. Apr 19 03:33:22 host kernel: kjournald D ffff810001004420 0 2046 49 2476 2044 (L-TLB) Apr 19 03:33:22 host kernel: ffff81013ce9fdd0 0000000000000046 0000000000000100 0000000000000000 Apr 19 03:33:22 host kernel: 0000000000000000 000000000000000a ffff81013c7d0820 ffffffff80309b60 Apr 19 03:33:22 host kernel: 001b51e0f255644a 0000000000000a88 ffff81013c7d0a08 0000000000000000 Apr 19 03:33:22 host kernel: Call Trace: Apr 19 03:33:22 host kernel: [] :jbd:journal_commit_transaction+0x16d/0x1066 Apr 19 03:33:22 host kernel: [] autoremove_wake_function+0x0/0x2e Apr 19 03:33:22 host kernel: [] try_to_del_timer_sync+0x7f/0x88 Apr 19 03:33:22 host kernel: [] :jbd:kjournald+0xc1/0x213 Apr 19 03:33:22 host kernel: [] autoremove_wake_function+0x0/0x2e Apr 19 03:33:22 host kernel: [] keventd_create_kthread+0x0/0xc4 Apr 19 03:33:23 host kernel: [] :jbd:kjournald+0x0/0x213 Apr 19 03:33:24 host kernel: [] keventd_create_kthread+0x0/0xc4 Apr 19 03:33:24 host kernel: [] kthread+0xfe/0x132 Apr 19 03:33:24 host kernel: [] child_rip+0xa/0x11 Apr 19 03:33:24 host kernel: [] keventd_create_kthread+0x0/0xc4 Apr 19 03:33:24 host kernel: [] kthread+0x0/0x132 Apr 19 03:33:24 host kernel: [] child_rip+0x0/0x11
Quels sont ces messages et quel est leur impact ?
La solution
Ce message signifie que le processus est dans l'état "D" pendant 120 secondes. Dans cet exemple, kjournald attendait la fin de journal_commit_transaction() pendant plus de 120 secondes, probablement en raison d'E/S importantes par certains processus, car la validation du journal est une fonction atomique.
D'une manière générale, cela peut être ignoré si les messages ne sont pas enregistrés dans /var/log/messages aussi fréquemment. Il s'agit simplement d'informations indiquant que le processus a été bloqué pour certaines raisons, pouvant survenir en raison d'E / S importantes, d'une déconnexion / d'un retard de stockage / réseau, etc.
Ainsi, ce que nous devons faire dans un premier temps après avoir trouvé ce message, c'est vérifier s'il est enregistré fréquemment, et ensuite s'il y a eu un problème de réseau/stockage à ce moment-là.
Conclusion
Ces messages signifient généralement que le système connaît une congestion du disque ou de la mémoire et que les processus sont privés de ressources disponibles. Ces messages servent d'avertissement que quelque chose ne fonctionne peut-être pas de manière optimale. Ils n'indiquent pas nécessairement un problème grave et tout processus bloqué devrait éventuellement se poursuivre lorsque le système se rétablit. Vous pouvez essayer de capturer la sortie des commandes ci-dessous pendant le problème si possible :
# top -n 5 -b > /tmp/top.out # vmstat 1 50 > /tmp/vm.out # iostat -x 2 10 > /tmp/io.out # ps aux > /tmp/ps.out # ps auxH > /tmp/psh.out # sar -A > /tmp/sar.out # free > /tmp/free.out # lsof > /tmp/lsof.out
Ces sorties peuvent être utiles lors du diagnostic du problème de blocage du système ou de la raison du message INFO "tâche bloquée pendant plus de 120 secondes".