读取 IO 等待增加

读取 IO 等待增加

在对运行软件 RAID 1 上的 ext3 的 Debian Linux 机器的性能问题进行故障排除时,我将一个将无用临时日志文件写入 /dev/null 的进程的输出重定向到 (ln -s /dev/null/ foo),这已将写入操作减少了约 3MB/s。然而,这一变化似乎也导致写入和总体 IOwait 时间大幅增加,我无法解释,并非常希望得到一些意见...

iostat:http://oi45.tinypic.com/5l2mx0.jpg

写入延迟(凌晨 3 点左右应用更改):http://oi46.tinypic.com/33be1kw.jpg

更新 18.04.13:

写入 IOwait 仍然比以前高,但我已经应用了以下所有方法,所有这些都至少在某种程度上是有益的......

  • 使用 noatime 选项重新挂载文件系统。
  • 更改为 deadline ioscheduler。
  • 已将 vm.swappiness 设为 30(主机上有~1GB 的数据库、CMS 和流音频)。
  • 将 sda 和 sdb 的预读从 4096 降低到 256。
  • 将 /dev/md2 (主数据分区) 的预读从 256 提高到 4096。

更新 19.04.13:

  • 将主文件系统从 ext3 转换为 ext4

答案1

从逻辑上讲,唯一可以增加响应时间(I/O 等待)的方法是增加对“相同”事物执行的操作数量。

假设:/dev/null 的 I/O 在驱动程序级别引起的操作比磁盘的 I/O(可能缓冲更多)要多

测试:尝试将其切换回磁盘文件。如果响应时间下降,则说明 /dev/null 的某些方面比预期耗时更长。如果响应时间保持不变,则说明在更改的同时发生了一些影响响应时间的事情。

--戴夫

相关内容