检索磁盘 read/write 最大速度(以编程方式)

Retrieving disk read/write max speed (programmatically)

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

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

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

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

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

所以,没有100%磁盘速度,CPU速度等

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