在Linux上,“ INFO:任务XXX被阻止超过120秒”到底是什么意思?


14

我在内核日志有这样的消息:INFO: task XXX blocked for more than 120 seconds。我想知道这在技术上是什么意思:内核在什么条件下显示有关任务的消息?

记录下来,我的阻止任务是multipathd,但我也对该错误的一般含义感兴趣。

Answers:


13

如果任务被阻止,它将等待资源再次变为可用。

在您的情况下,磁盘区域中可能存在IO问题或争用。或者您的系统负载太高,以至于没有足够的CPU能力来及时完成工作。

我已经从cron看到了这个错误,如果它试图在非常繁忙的时间内开始工作。


你可以说得更详细点吗?“阻塞”是否表示“连续处于不间断状态”?
Totor

@Totor在这种情况下正在等待资源。因此,其他io不可中断。
尼尔斯

7

基本上,如果CPU调度程序在给定的时间内未切换到该进程,并且该进程不符合异常条件,则触发此日志记录。

例外情况是特殊情况,即尚未切换到进程但不应记录该进程。我不清楚这些例外的条件;FWIW对代码中的案例的评论是:

Also, skip vfork and any other user process that freezer should skip.

Also, when a freshly created task is scheduled once, changes
its state to TASK_UNINTERRUPTIBLE without having ever been
switched out once, it musn't be checked.

http://lxr.free-electrons.com/source/kernel/hung_task.c#L75

至于为什么可能长时间不安排任务,将其连续置于TASK_UNINTERRUPTABLE(“ D”状态)将是一种可能性,但我不知道还有什么可能。


也许相关的错误:Linux的3.14-3.17上的Haswell处理器- -工艺可以在futex_wait挂groups.google.com/d/msg/mechanical-sympathy/QbmpZxp6C64/...
rakslice
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.