Linux 中 I/O 性能出现大规模且不可预测的下降

Linux 中 I/O 性能出现大规模且不可预测的下降

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

问题是,突然所有磁盘读取和写入速度减慢至约 5MB/秒,这导致连续读取和写入。由于速率如此之低,磁盘不会受到机械挑战或压力,但一切都会变慢,直到我重新启动。

计算机的 I/O 子系统由 1 个 OCZ Vertex 3 SSD 和 2 个 WD Caviar Black HDD 组成。 SSD 保存操作系统的读取密集部分,HDD 上的分区保存其余部分。

为了诊断问题,我尝试了以下方法但没有成功:

  • topCPU 和 I/O 使用情况均未显示任何失控活动。
  • hdparm返回磁盘的正常性能评级(-t不过我只检查过)。
  • smartctl没有显示磁盘中的任何性能问题。长时间的测试表明磁盘就像新的一样。

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

更新1:

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

更新2:

问题两天了还没有出现。或者fsckBIOS 更新清除了系统中的一些堵塞物。我仍在关注这个问题,并将通过事后分析的答案来结束这个问题。

更新3:

问题又出现了,我做了更多的挖掘。请看答案。

答案1

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

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

最后更新:经过更多调查后,我发现缓存中的文件数量触发了问题。当尝试将许多小文件提交回磁盘时,它会破坏磁盘。由于我使用该系统已经有十年了,所以我决定重新安装 64 位 Debian。现在工作进展顺利。这可能是十年升级的副作用,发现了 32 位操作系统的限制。

答案2

是否有任何可疑消息dmesg

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

  • 数据统计
  • 延迟顶部
  • 系统教授

相关内容