宣布时间: 2019年12月17日
https://access.redhat.com/solutions/31453
https://access.redhat.com/zh_CN/solutions/695633
Solution 已验证?- 已更新 2018年三月20日07:56 -?
中文 (中国)
?? Red Hat Enterprise Linux (RHEL) 5.5 (kernel-2.6.18-194) 或更高版本
?? Red Hat Enterprise Linux (RHEL) 6
?? Red Hat Enterprise Linux (RHEL) 7
?? 历程处于无法中止的睡眠状态 (D state)
?? 在系统变为无响应前,/var/log/messages 中纪录了以下信息:
Raw
INFO: task : blocked for more than 120 seconds ?? 是什么缘故原由导致爆发上面的信息?在对这个问题举行故障扫除时需要什么信息?
# sysctl kernel.hung_task_timeout_secs=0Raw
kernel.hung_task_panic = 02.6.18-194?中增添了一个 Detect Hung Task 内核线程 (khungtaskd),它的功效是检测到那些已处于 D-state ( Uninterruptible Sleep (UN) ) 状态凌驾了一准时间(默认是 120 秒)的使命,并把以下类型的信息纪录到系统日志文件中(例如,/var/log/messages)。Raw
"INFO: task : blocked for more than 120 seconds" khungtaskd?内核线程会监控历程的状态,并检查是否有历程已处于不可中止的状态凌驾了 "kernel.hung_task_timeout_secs" sysctl 参数所设定的时间长度(这个系统参数的默认值是 120 秒)。若是保存这样的历程,它会在日志中纪录这个情形,并纪录下壅闭历程的挪用回溯信息。为了避免爆发大宗的日志数据,在默认情形下,这个监控历程只会报告检测到的最先爆发的 10 个挂起使命,以后将不再报告。因此,纵然不再爆发相关的信息,仍然有可能保存壅闭的使命。Raw
INFO: task syslogd:2643 blocked for more than 120 seconds.? "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message.? syslogd D ffff81000237eaa0 0 2643 1 2646 2634? (NOTLB)??
ffff8101352c3d88 0000000000000086 ffff8101352c3d98 ffffffff80063ff8? 0000000000001000 0000000000000009 ffff81013d2c57e0 ffff810102ac1820? 0000340b30708992 0000000000000571 ffff81013d2c59c8 000000010000089f? Call Trace:? [] thread_return+0x62/0xfe? [] :jbd:log_wait_commit+0xa3/0xf5? [] autoremove_wake_function+0x0/0x2e? [] :jbd:journal_stop+0x1cf/0x1ff? [] __writeback_single_inode+0x1e9/0x328? [] do_readv_writev+0x26e/0x291? [] sync_inode+0x24/0x33? [] :ext3:ext3_sync_file+0xc9/0xdc? [] do_fsync+0x52/0xa4? [] __do_fsync+0x23/0x36? [] tracesys+0xd5/0xe0 Raw
# uname -a > /tmp/uname.out# ifconfig > /tmp/ifcongfig.out# 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运行以下下令以提供相关的数据:
Raw
# tar -cjvf outputs.tar.bz2 /tmp/*.out# tar -cjvf message.tar.bz2 /var/log/message*
Raw
$ grep MYAPP lsof | grep oracleMYAPP??? 7096???? 1062? cwd??? DIR??? 0,18???? 0???? 558301 /oracle/prd/fs_ne/inst/conc/log...$ grep nfs mountremotehost@:/ on /oracle/prd/fs_ne/inst type nfs (rw,nosuid)