Il problema
Occasionalmente INFORMAZIONI i messaggi vengono registrati su /var/log/messages come:
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
Quali sono questi messaggi e qual è il loro impatto?
La soluzione
Questo messaggio indica che il processo è nello stato "D" per 120 secondi. In questo esempio, kjournald stava aspettando il completamento di journal_commit_transaction() per oltre 120 secondi, molto probabilmente a causa di un intenso I/O da parte di alcuni processi, poiché il journal commit è una funzione atomica.
In generale, questo potrebbe essere ignorato, se i messaggi non vengono registrati in /var/log/messages così frequentemente. Si tratta solo di informazioni che indicano che il processo è stato bloccato per alcuni motivi, che potrebbero verificarsi a causa di I/O pesanti, archiviazione/disconnessione della rete/ritardo o altro.
Pertanto, ciò che dobbiamo fare all'inizio dopo aver trovato questo messaggio è controllare se questo è registrato frequentemente e, successivamente, se si è verificato un problema di rete/archiviazione in quel momento.
Conclusione
Questi messaggi in genere significano che il sistema sta riscontrando una congestione del disco o della memoria e che i processi stanno esaurendo le risorse disponibili. Questi messaggi servono come avvertimento che qualcosa potrebbe non funzionare in modo ottimale. Non indicano necessariamente un problema serio e tutti i processi bloccati dovrebbero eventualmente procedere al ripristino del sistema. Puoi provare a catturare l'output dei comandi seguenti durante il problema, se possibile:
# 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
Queste uscite possono essere utili durante la diagnosi del problema di blocco del sistema o il motivo del messaggio INFO "attività bloccata per più di 120 secondi".