如何在Linux上显示当前磁盘IO队列长度?

时间:2012-11-28 20:09:13

标签: linux io kernel block scheduler

我正在为Linux内核开发一个新的IO调度程序。我试图看看是否有人知道在Linux中打印出未完成的IO请求总数(磁盘IO队列)的工具?

我将在终端工作。

谢谢!

2 个答案:

答案 0 :(得分:25)

在这里原谅大规模的死灵族。实际上你需要iostat -x,它将显示自上次运行iostat以来有问题的设备的扩展统计数据。如果您希望实时监控队列,您希望iostat -xt 1(或iostat -xmt 1显示以兆字节为单位的详细信息。)

您可以在avgqu-sz列中查看平均队列大小。

请考虑以下来自iostat -xmt 1的示例输出,该输出显示完整的IO队列(此设备的最大队列长度为128)和基准测试期间的饱和磁盘。

18/05/15 00:41:05
avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           0.00    0.00    0.00    6.02    0.00   93.98

Device:         rrqm/s   wrqm/s     r/s     w/s    rMB/s    wMB/s avgrq-sz avgqu-sz   await  svctm  %util
xvda              0.00     0.00    1.00 1308.00     0.00   163.50   255.81   133.30  101.15   0.76 100.00

答案 1 :(得分:1)

dmitry@pro:~$ iostat 
          disk0       cpu     load average
    KB/t tps  MB/s  us sy id   1m   5m   15m
   50.70  34  1.70   4  3 93  1.83 1.65 1.70
dmitry@pro:~$ 
  

说明        Iostat在终端,设备和cpu操作上显示内核I / O统计信息 -        蒸发散。打印的第一个统计数据是在系统上的平均值        准时工作时间。要获得有关当前活动的信息,请使用合适的        应指定等待时间,以便后续打印        统计数据将在那段时间内取平均值。