IO 密集型进程因 iowait 而挂起,但没有进行任何活动

IO 密集型进程因 iowait 而挂起,但没有进行任何活动

我有很多 IO 密集型作业,为了提高性能,我刚刚在计算服务器中安装了两个 SSD,一个用作临时文件系统,一个用作交换。运行一段时间后,我的所有进程都处于“D”状态,不消耗 CPU,系统报告 67% 处于空闲状态,33% 处于等待状态。iostat 显示磁盘活动正在进行,系统其他方面均有响应,包括相关文件系统。将“strace”附加到进程不会产生任何输出。

查看 /proc/(pid)/fd,我发现所有进程都在使用(读取)一个公共文件。我看不出这会导致问题的任何原因,但我替换了文件,终止了进程,并让一切继续(即将启动新进程)。我们将看看事情是否会卡在新文件上,还是卡在不同的文件中,或者 - 理想情况下 - 根本不会卡住 :-)

我还在 kern.log 中发现了其中几个:

BUG: unable to handle kernel paging request at ffffeb8800096e5c

还有很多其他信息,但我不知道如何解读它——除了它指的是我的一个进程的 PID 和名称。

知道这是怎么回事吗,或者如何修复它?这是在 Ubuntu 12.04 LTS 上,带有 RocketRaid 磁盘控制器和 btrfs 文件系统的 Dell 盒子。

答案1

这似乎是内存问题。启动 memtest 并检查内存。

相关内容