Mac 上的磁盘 IO 利用率百分比

问题描述

我正在尝试测量 Mac 平台上的磁盘 IO 利用率百分比。

经过一些研究,我决定使用 IOKit,我能够得到 kIOBlockStorageDriverStatisticsTotalReadTimeKeykIOBlockStorageDriverStatisticsTotalWriteTimeKey,它们表示“自块存储驱动程序实例化以来执行读/写所花费的纳秒数”。>

所以我做的是

  1. 节省“执行读取时间”+“执行写入时间”值
  2. 等待一段时间,比如 delta = 5 秒
  3. 获取新的“读取时间”+“写入时间”值
  4. (new value - old value) / delta,在我看来,这给了我“磁盘 IO 利用率”

disk0 = 系统中唯一的磁盘所做的所有计算。一段时间以来,它看起来对我来说已经足够好了,但是我安装了随机磁盘速度测试软件,在压力测试下,我的程序显示出一些惊人的结果!

read time (ns) = 4.26463e+12
write time (ns) = 1.76148e+12
since last probe we spend 29.6418 seconds doing io operations
current disk utilisation % = 592.837
***********************************
read time (ns) = 4.28549e+12
write time (ns) = 1.77026e+12
since last probe we spend 30.4831 seconds doing io operations
current disk utilisation % = 609.662
***********************************
read time (ns) = 4.30917e+12
write time (ns) = 1.77706e+12
since last probe we spend 32.0353 seconds doing io operations
current disk utilisation % = 640.705
***********************************

如您所见,在 5 秒期间,系统报告了超过 30 秒的 IO 操作。有没有人对此有任何合理的解释?这是否意味着我的程序有错误,或者我只是不明白这些值是如何计算的?谢谢!

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)