【问题标题】:Retrieving disk read/write max speed (programmatically)检索磁盘读/写最大速度(以编程方式)
【发布时间】:2019-12-28 13:39:11
【问题描述】:

我正在创建一个测量磁盘使用情况的 C++ 应用程序。我已经能够通过定期读取/proc/diskstats 来检索当前的磁盘使用情况(读写速度)。

我现在希望能够以百分比的形式显示此使用情况(我发现它比原始数字更便于用户使用,这可能很难解释)。因此,有人知道在 Linux 上以编程方式检索最大(或标称)磁盘 I/O 速度(API 调用、读取文件等)的方法吗?

我知道有关测量磁盘速度的各种答案(例如https://askubuntu.com/questions/87035/how-to-check-hard-disk-performance),但都通过测试。我想避免这样的方法,因为它们需要一些时间来运行并且在运行时需要大量的磁盘 I/O(因此可能会降低其他正在运行的应用程序的性能)。

【问题讨论】:

    标签: c++ linux c++14 disk disk-io


    【解决方案1】:

    在 IBM PC 时代来临之际,有一个很棒的 DOS 实用程序,我忘记了它的名字,但它正在测量计算机的速度(也许是 Speedtest?随便)。屏幕底部 2/3 处有一个条形图,表示 CPU 的速度。如果您有 4.0 MHz(不是 GHz!),则该条占据了 10% 的屏幕。

    2-3年后,'386电脑崛起了,速度指示条不仅长满了线,还长满了屏幕,看起来很烂。

    因此,没有诸如 100% 磁盘速度、CPU 速度等。

    你能做到的最好:如果你的程序运行一段时间,你可以记住最高值并将其设置为 100%。可能您可以将值保存到 tmp 文件中。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-02-27
      • 2014-01-05
      • 1970-01-01
      • 2017-10-12
      • 1970-01-01
      • 2012-01-31
      • 2011-02-07
      • 2015-11-14
      相关资源
      最近更新 更多