可以高负载导致服务器挂起和错误“封锁超过120秒”?

目前正在运行一些虚拟机和“裸机”服务器。 Java运行时间高达400%以上。 随机的服务器挂起在控制台“java – 被阻止超过120秒”的错误 – kjournald等

我不能得到一个dmesg输出,因为由于某种原因,这个错误只写入控制台,我不能访问,因为这是远程托pipe。 因此我无法复制完整的跟踪。

我改变了这个环境 – 甚至物理服务器,它仍然在发生。

我将hung_task_timeout_secs更改为0 incase,这是一个误报,根据http://docs.redhat.com/docs/en-US/Red_Hat_Enterprise_Linux/6/html/Technical_Notes/deployment.html 。

另外,irqbalance没有安装,也许这会有所帮助?

这是Ubuntu 10.04 64bit – 与最新的2.6.38-15-server和2.6.36相同的问题。

可以cpu或内存问题/没有交换离开导致这个问题?

这里是控制台消息:

[58Z?Z1.5?Z840] INFUI task java:21547 blocked for more than 120 seconds. [58Z?Z1.5?Z986] "echo 0 > /proc/sgs/kernel/hung_task_timeout_secs" disables this message. [58Z841.5?Z06Z] INFUI task kjournald:190 blocked for more than 120 seconds. [58Z841.5?Z336] "echo 0 > /proc/sgs/kernel/hung_task_timeout_secs" disables this message. [58Z841.5?Z600] INFUI task flush-202:0:709 blocked for more than 120 seconds. [58Z841.5?Z90?] "echo 0 > /proc/sgs/kernel/hung_task_timeout_secs" disables this message. [58Z841.5?3413] INFUI task java:21547 blocked for more than 120 seconds. [58Z841.5?368Z] "echo 0 > /proc/sgs/kernel/hung_task_timeout_secs" disables this message. [58Z961.5?ZZ36] INFUI task kjournald:60 blocked for more than 120 seconds. [58Z961.5?Z6Z5] "echo 0 > /proc/sgs/kernel/hung_task_timeout_secs" disables this message. [58Z961.5?31ZZ] INFUI task flush-202:0:709 blocked for more than 120 seconds. [58Z961.5?3393] "echo 0 > /proc/sgs/kernel/hung_task_timeout_secs" disables this message. 

是的,可以。

这意味着什么是相当明确的:内核不能安排任务120秒。 这表明资源匮乏,通常在磁盘访问周围。

irqbalance可能会有所帮助,但这并不明显。 你可以提供给我们在dmesg这个消息的周围,特别是跟踪它的堆栈跟踪?

而且,这不是假阳性。 这并不是说这个任务是永久的 ,这个说法是完全正确的。 这并不意味着这对您是个问题,如果您没有注意到任何用户的影响,您可以决定忽略它。

这不能由以下原因引起:

  • 一个CPU问题(或者说,这将是一个疯狂的不可能的硬件故障),
  • 一个内存问题(非常不可能是一个硬件故障,但不会发生多次;不是内存不足,因为一个进程将被oom-killed ),
  • 缺乏交换(又一次oom-killer )。

从某种意义上讲,你可能会把这个归咎于缺乏内存,因为剥夺你的系统数据在RAM中的caching将导致更多的I / O。 但这并不像“内存不足”那样简单。

 sudo sysctl –w vm.dirty_ratio=10 sudo sysctl –w vm.dirty_background_ratio=5 

然后提交更改:

 sudo sysctl –p 

解决了我的….

我最近在我们的一个生产集群中遇到了这个错误:

11月11日14:56:41 xxx内核:信息:任务xfsalloc / 3:2393阻塞超过120秒。

11月11日14:56:41 Xxxx内核:没有污染2.6.32-504.8.1.el6.x86_64#1

11月11日14:56:41 xxx:“echo 0> / proc / sys / kernel / hung_task_timeout_secs”禁用此消息。

..

关于sar日志的进一步validation发现IO等待在同一时间增加。

在检查硬件(物理磁盘)时,由于缺less资源分配,看到介质错误和其他SCSI错误已经login到一个物理磁盘上,而物理磁盘反过来又阻塞了IO。

11/11/15 19:52:40:终止pRdm 607b8000标志= 0 TimeOutC = 0 RetryC = 0请求c1173100回复60e06040 iocStatus 0048 retryC 0 devId:3 devFlags = f1482005 iocLogInfo:31140000

11/11/15 19:52:40:DM_ProcessDevWaitQueue:进程中的任务pipe理devId = x 11/11/15 19:52:40:DM_ProcessDevWaitQueue:进程中的任务pipe理devId = x

所以这是由于硬件错误,在我们的集群。

所以如果你能检查核心文件,并且如果有ipmi实用程序,那么检查ipmiutil / ipmitool sel elist命令来检查问题是很好的。

问候,VT