什么 iowait 值可以?

alf*_*ish 2 mysql iowait bottleneck iostat

我试图找到运行一个相当繁忙的 php/mysql 站点的服务器的瓶颈。我的第一个罪魁祸首是 io 但 iostat 显示平均 iowait 仅消耗 %3.60 的 cpu 时间。这是发出 iostat 的完整结果:

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
          65.78    0.00    8.52    3.60    0.00   22.10

Device:            tps   Blk_read/s   Blk_wrtn/s   Blk_read   Blk_wrtn
sda              42.36       138.28      1754.70  408630278 5185216128
Run Code Online (Sandbox Code Playgroud)

所以我想知道iowait是否在可接受的范围内,如果不是,从SATA切换到SSD是否会大大减少它?

wom*_*ble 6

iowait,作为系统负载的度量,只是一个问题,因为它消耗了可以被其他进程合理使用的 CPU 时间。如果您仍然有空闲的 CPU 时间,那么高iowait(本身)不是问题。

另一方面,高iowait 可能是问题的征兆。但是,您确实应该分析您的应用程序,以查看花费在磁盘 I/O 上的时间是否占完成一项有用任务所花费的总时间的很大一部分。你无法通过查看CPU的统计信息,做到这一点tophtopiotop,或任何其他系统级工具,人们会尽量推荐。您需要查看您的应用程序及其工作方式,以确定更改磁盘 I/O 子系统是否对您的应用程序有任何好处。