【问题标题】:How do I display the current disk IO queue length on Linux? [closed]如何在 Linux 上显示当前磁盘 IO 队列长度? [关闭]
【发布时间】:2012-11-28 20:09:13
【问题描述】:

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

我会在终端上工作。

谢谢!

【问题讨论】:

    标签: linux io kernel block scheduler


    【解决方案1】:

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

    您可以在aqu-sz 列中查看平均队列大小(在以前的版本中为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
    

    【讨论】:

      【解决方案2】:
      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 统计信息 选项。打印的第一个统计数据在系统上进行平均 正常运行时间。为了获得有关当前活动的信息,一个合适的 应指定等待时间,以便后续套打印 统计数据将在这段时间内取平均值。

      【讨论】:

      • 我了解了这个文件“/proc/diskstats”,如果我 cat 该文件,我的 SSD 磁盘行如下所示:16 sdb 419177 2902 4840388 1711380 2733730 11581604 199209864 100752396 0 796116 10 doc,第九个字段是我的队列长度——>在我的例子中是“0”。你认为这实际上是磁盘 IO 队列长度吗?可以在以下位置找到此文件的文档:unix.com/linux/…
      • 在全新安装时运行 apt-get install sysstat 以获取 iostat 命令。
      猜你喜欢
      • 2010-11-21
      • 2014-10-27
      • 2016-12-20
      • 2012-04-17
      • 2014-08-10
      • 2015-10-26
      • 2010-10-02
      • 2018-08-27
      • 2013-11-21
      相关资源
      最近更新 更多