El problema
Ocasionalmente INFO los mensajes se registran en /var/log/messages tales como:
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
¿Cuáles son estos mensajes y cuál es su impacto?
La solución
Este mensaje pretende que el proceso esté en estado "D" durante 120 segundos. En este ejemplo, kjournald estuvo esperando la finalización de journal_commit_transaction() durante más de 120 segundos, muy probablemente debido a la gran cantidad de E/S de algunos procesos, ya que la confirmación del diario es una función atómica.
En términos generales, esto podría ignorarse si los mensajes no se registran en /var/log/messages con tanta frecuencia. Esta es solo información que pretende que el proceso se atascó por algunas razones, lo que podría ocurrir debido a una gran cantidad de E/S, almacenamiento/desconexión de la red/retraso, etc.
Por lo tanto, lo que debemos hacer al principio después de encontrar este mensaje es verificar si se registra con frecuencia y luego si hubo un problema de red/almacenamiento en ese momento.
Conclusión
Estos mensajes generalmente significan que el sistema está experimentando una congestión en el disco o la memoria y que los procesos están privados de los recursos disponibles. Estos mensajes sirven como advertencia de que es posible que algo no esté funcionando de manera óptima. No necesariamente indican un problema grave y cualquier proceso bloqueado debería continuar eventualmente cuando el sistema se recupere. Puede intentar capturar la salida de los siguientes comandos durante el problema si es posible:
# 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
Estos resultados pueden ser útiles al diagnosticar el problema de bloqueo del sistema o el motivo detrás del mensaje INFO "tarea bloqueada durante más de 120 segundos".