Linux中大量无法预测的I / O性能下降


11

我使用Debian测试大约6年没有任何问题(我只是定期对其进行更新),但是最近它开始显示出一种随机行为,可以概括为“低I / O性能,一直持续到重启”。

问题是,突然所有磁盘的读写速度降低到〜5MB / sec,从而导致连续的读写操作。由于速率如此之低,因此磁盘不会受到机械挑战或压力,但是一切都会变慢,直到我重新启动为止。

计算机的I / O子系统由一个OCZ Vertex 3 SSD和两个WD Caviar Black HDD组成。SSD包含操作系统的大量读取数据,而HDD上的分区保留了其余部分。

为了诊断问题,我尝试了以下失败的尝试:

  • top 在CPU和I / O使用率方面均未显示任何失控活动。
  • hdparm返回磁盘的正常性能等级(-t虽然我只检查了)。
  • smartctl不会在磁盘上显示任何性能问题。长时间的测试表明,这些磁盘与新磁盘一样好。

系统具有Z77芯片组,16GB RAM和Intel i7 3770K CPU,并且统计数据没有显示RAM,I / O或CPU饱和的迹象,但是我没有调试此类问题的经验(尤其是在内核空间中)。任何帮助将不胜感激。

更新1:

  • 作为预防措施,我在每个分区上都运行(强制)fsck。所有的FS都是干净的。
  • 偶然地,我发现一个BIOS升级是在一个月前发布并应用的。
  • 没有分区填充超过50%。

更新2:

问题没有在两天内出现。无论是fsck或BIOS更新清洗系统中的一些堵塞。我仍在监视该问题,并将通过事后答复结束该问题。

更新3:

问题刚刚浮出水面,我做了更多的挖掘工作。请查看答案。


1
可能是碎片问题,它atop会告诉您磁盘有多忙(就像一直搜索时一样)。
斯特凡Chazelas

1
为了排除一些怪癖,请禁用NCQ并将I / O调度程序设置为noop
弗罗斯特斯

1
“低I / O性能一直持续到重新启动”可能是损坏/故障的设备,导致总线占用时间太长,这太疯狂了,难以诊断出缺少硬件。
msw

1
然后,我要检查的下一件事情是检查日志中是否有错误,并检查是否有足够的内存分配给缓冲区/高速缓存(请参阅free
参考资料的

1
iowait如果您正在收集sar数据,则可能会看到等信息。sysstat如果尚未运行,我将启用它。您可以检查sar -A大多数平台是否有十分钟的采样间隔。
布莱奇利2013年

Answers:


12

我设法再次重现该问题,这是大磁盘缓存的结果。我的磁盘缓存可以增长到8GB以上,并且似乎某些应用程序不喜欢它,并且I / O受到影响。

echo 3 > /proc/sys/vm/drop_caches以root用户身份删除磁盘缓存可以解决该问题。我目前不知道为什么大型磁盘缓存会导致此I / O降级。

上次更新:经过更多调查,我发现缓存中的文件数量引发了问题。尝试将许多小文件提交回磁盘时,它正在浪费磁盘。自从我使用该系统已有十年之久以来,我就开始尝试并重新安装了64位Debian。现在工作顺利。找到32位操作系统的限制可能是十年升级的副作用。


2

里面有任何可疑的消息dmesg吗?

您可以尝试使用更多工具来深入了解系统瓶颈:

  • dstat
  • 等待时间
  • sysprof

在任何日志中都没有可疑之处。TBH没有与此问题相关的日志条目。不过,我将尝试使用这些工具。高端PC闲置而没有任何运行时,不应出现瓶颈。我认为缓存或与I / O子系统相关的某些东西出了问题。
bayindirh

....以及iotop,fio
symcbean
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.