在solaris中获取averageReadTime和averageWriteTime(磁盘I/O)

在solaris中获取averageReadTime和averageWriteTime(磁盘I/O)

我正在努力从“iostat -xnp”命令获取“平均读取时间(毫秒)”和“平均写入时间(毫秒)”。

在linux中,有一个“/proc/diskstats”命令,它给我“读取毫秒所花费的时间”和“写入毫秒所花费的时间以及“已完成的读取数”和“已完成的写入数”。所以,我可以除以“阅读所花费的时间”与“已完成的阅读次数”即可得出平均阅读时间(毫秒)。

为了得出类似的结果,我使用以下方程。如有错误请指正。

iostat 的输出示例:

------------------------
r/s    w/s   kr/s   kw/s wait actv wsvc_t asvc_t  %w  %b device
0.8    3.7   43.5   38.3  0.0  0.0    0.8    0.4   0   0 c0d0
0.0    0.0    0.0    0.0  0.0  0.0    0.0    0.1   0   0 c0t1d0
0.0    0.0    0.0    0.0  0.0  0.0    0.0    0.0   0   0 c2t1d0s2

Average_time_spent_reading(ms) = number_of_reads_per_second *average_service_time(ms)/(number_of_reads_per_second + number_of_write_per_second) 。

平均写入时间(毫秒) = 每秒写入次数 * 平均服务时间(毫秒) /(每秒读取次数 + 每秒写入次数)

提前致谢。

答案1

您可以使用 DTrace 解决此问题 - 如果您使用 DTrace 工具包(http://www.brendangregg.com/dtracetoolkit.html)你可以看到它是如何完成的。 Solaris 11 及更高版本让您pkg install system/dtrace/dtrace-toolkit;我认为对于 Solaris 10,您需要直接从 Brendan 的网站获取它。

相关内容