如何测量频率超过一秒的磁盘和网络 IO?

如何测量频率超过一秒的磁盘和网络 IO?

我正在运行一些使用 CPU、磁盘和网络资源的实验。(顺便说一下,我使用 Cent OS 7)我想测量它的 CPU、磁盘和网络资源使用情况。

我知道的一些工具(dstat、iostat)仅提供一秒作为两次测量之间的最小间隔。

如何在一秒钟内进行多次测量?我用谷歌搜索了很多但找不到。

谢谢

答案1

希望有人可以向您指出一些工具来完成您想做的事情,但如果没有,并且您承诺可以直接从源获取数据。iostat主要只是解析特殊文件,例如/proc/diskstats每当您阅读这些文件时,它们都会更新。我刚刚在阅读的地方做了一个快速测试磁盘统计每秒多次,每次读取时值都会发生变化。

iostat手册页末尾列出了相关文件:

/proc/stat 包含系统统计信息。

/proc/uptime 包含系统正常运行时间。

/proc/partitions 包含磁盘统计信息(对于已修补的 2.5 之前的内核)。

/proc/diskstats 包含磁盘统计信息(针对 2.5 后的内核)。

/sys 包含块设备的统计信息(2.5 内核后)。

/proc/self/mountstats 包含网络文件系统的统计信息。

/dev/disk 包含持久设备名称。

找到有关这些文件中的字段所代表的内容的信息并不难。例如:

     The /proc/diskstats file displays the I/O statistics
    of block devices. Each line contains the following 14
    fields:
     1 - major number
     2 - minor mumber
     3 - device name
     4 - reads completed successfully
     5 - reads merged
     6 - sectors read
     7 - time spent reading (ms)
     8 - writes completed
     9 - writes merged
    10 - sectors written
    11 - time spent writing (ms)
    12 - I/Os currently in progress
    13 - time spent doing I/Os (ms)
    14 - weighted time spent doing I/Os (ms)
    For more details refer to Documentation/iostats.txt

相关内容