我正在努力从“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 的网站获取它。