【发布时间】:2016-01-03 08:49:47
【问题描述】:
我需要访问 linux 内核指标,其中之一是文件系统读写速度。
我知道有诸如“dd”、“hdparm”和“iotop”之类的命令可以提供有关文件系统数据传输速度的信息,但我不知道如何在我的 C 程序中读取这些信息,然后,例如,我在控制台中打印速度。
如果有一个文件,它有速度信息,它可以在 C 程序中读取文件并访问速度。 如何才能做到这一点? 谢谢你。
我阅读了iostats.txt 文档。文件 /proc/diskstats 的每一行有 11 个参数。根据 iostats.txt,对于每一行,第三个参数是读取扇区的总数,第四个参数是读取时间的总数,以毫秒为单位。 如果every sector is 4096 bytes,那么阅读速度公式一定是: speed = (($3) * 4096 )/ $4($x表示参数x)
但是当我计算我的闪存的读取速度时,它是 0.2 MB/秒,尽管根据命令 iostat -k 2它必须是大约 7 Mb/秒> 或 gnu 磁盘实用程序(图形应用程序)。 如何从这些参数评估速度,以 MB/Sec 为单位评估速度的正确公式是什么?
【问题讨论】:
-
定义“系统的数据传输速度”。您在图片中显示的数字(请不要将文本作为图片发布)是一次文件传输的传输速度,而不是系统(无论是什么)的传输速度。
-
我想在我的 C 程序中像以下命令一样获得文件系统读取速度:[ iostat -k 2 ]
-
一开始你为什么不这么说呢?
标签: c linux filesystems metrics