Problém
Občas INFO zprávy jsou přihlášeny do /var/log/messages jako například:
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
Co jsou tato sdělení a jaký mají dopad?
Řešení
Tato zpráva předpokládá, že proces je ve stavu „D“ po dobu 120 sekund. V tomto příkladu kjournald čekal na dokončení journal_commit_transaction() více než 120 sekund, s největší pravděpodobností kvůli těžkým I/O některým procesům, protože journal commit je atomická funkce.
Obecně řečeno, toto může být ignorováno, pokud zprávy nejsou tak často přihlášeny do /var/log/messages. Toto je pouze informace, která předpokládá, že proces byl zablokován z nějakých důvodů, k nimž mohlo dojít v důsledku těžkého I/O, odpojení úložiště/sítě/zpoždění nebo podobně.
Po nalezení této zprávy tedy musíme nejprve zkontrolovat, zda je tato zpráva často protokolována, a dále, zda v té době došlo k potížím se sítí/úložištěm.
Závěr
Tyto zprávy obvykle znamenají, že v systému dochází k zahlcení disku nebo paměti a procesům chybí dostupné zdroje. Tyto zprávy slouží jako varování, že něco nemusí fungovat optimálně. Nemusí nutně znamenat vážný problém a všechny zablokované procesy by měly případně pokračovat, až se systém zotaví. Pokud je to možné, můžete zkusit zachytit výstup níže uvedených příkazů během problému:
# 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
Tyto výstupy mohou být užitečné při diagnostice problému zablokování systému nebo důvodu INFO zprávy „úloha blokována déle než 120 sekund“.