检索磁盘读/写最大速度(以编程方式)
Posted
技术标签:
【中文标题】检索磁盘读/写最大速度(以编程方式)【英文标题】: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(因此可能会降低其他正在运行的应用程序的性能)。
【问题讨论】:
【参考方案1】:在 IBM PC 时代来临之际,有一个很棒的 DOS 实用程序,我忘记了它的名字,但它正在测量计算机的速度(也许是 Speedtest?随便)。屏幕底部 2/3 处有一个条形图,表示 CPU 的速度。如果您有 4.0 MHz(不是 GHz!),则该条占据了 10% 的屏幕。
2-3年后,'386电脑崛起了,速度指示条不仅长满了线,还长满了屏幕,看起来很烂。
因此,没有诸如 100% 磁盘速度、CPU 速度等。
你能做到的最好:如果你的程序运行一段时间,你可以记住最高值并将其设置为 100%。可能您可以将值保存到 tmp 文件中。
【讨论】:
以上是关于检索磁盘读/写最大速度(以编程方式)的主要内容,如果未能解决你的问题,请参考以下文章