我正在尝试查找运行相当繁忙的 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
所以我想知道 iowait 是否在可接受的范围内,如果不在,那么从 SATA 切换到 SSD 是否会显著减少它?
答案1
iowait
作为系统负载的衡量标准,只有在它占用了其他进程可以合理使用的 CPU 时间时才会出现问题。如果您仍有空闲的 CPU 时间,那么高iowait
(就其本身而言)并不是问题。
另一方面,高iowait
能这可能是问题的征兆;但是,您确实应该分析应用程序,看看磁盘 I/O 所花费的时间是否占完成有用任务所花费总时间的很大一部分。您无法通过查看 CPU 统计数据、、、或人们会尝试推荐的任何其他系统级工具来做到这一点top
。htop
您iotop
需要查看你的申请,以及它的工作方式,以确定更改磁盘 I/O 子系统是否会对您的应用程序有任何好处。
答案2
磁盘利用率更重要,你可以用以下方法测量:
iostat -xm 5
可能会接近 100%