目前正在运行一些虚拟机和“裸机”服务器。Java 运行速度很高 - 有时超过 400%+。服务器随机挂起,控制台中出现错误“java - 阻塞超过 120 秒” - kjournald 等。
我无法获得 dmesg 输出,因为出于某种原因,此错误仅写入控制台,我无权访问,因为这是远程托管的。因此我无法复制完整的跟踪。
我改变了它所在的环境 - 即使是物理服务器,它仍在发生。
根据http://docs.redhat.com/docs/en-US/Red_Hat_Enterprise_Linux/6/html/Technical_Notes/deployment.html,我将 Hung_task_timeout_secs 更改为 0 以防误报。
另外, 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.
Run Code Online (Sandbox Code Playgroud)
Pie*_*ier 16
是的,可以。
这意味着什么是相当明确的:内核无法在 120 秒内安排任务。这表明资源匮乏,通常围绕磁盘访问。
irqbalance
可能会有所帮助,但这听起来并不明显。您能否在 中向我们提供此消息的周围信息dmesg
,特别是跟随它的堆栈跟踪?
此外,这不是误报。这并不是说任务永远挂起,该声明是完全正确的。这并不意味着它对您来说是个问题,如果您没有注意到任何用户影响,您可以决定忽略它。
这不能由以下原因引起:
oom-killed
),oom-killer
再次)。从某种意义上说,您可能会将其归咎于内存不足,因为剥夺系统在 RAM 中缓存数据会导致更多 I/O。但这并不像“内存不足”那么简单。
小智 6
sudo sysctl -w vm.dirty_ratio=10
sudo sysctl -w vm.dirty_background_ratio=5
Run Code Online (Sandbox Code Playgroud)
然后提交更改:
sudo sysctl -p
Run Code Online (Sandbox Code Playgroud)
帮我解决了....
归档时间: |
|
查看次数: |
98234 次 |
最近记录: |