如何获取具有实际输入值的磁盘 IO 跟踪?

Posted

技术标签:

【中文标题】如何获取具有实际输入值的磁盘 IO 跟踪?【英文标题】:How can I get the disk IO trace with actual input values? 【发布时间】:2015-03-18 06:37:05 【问题描述】:

我想从磁盘 IO 生成一些跟踪文件,但问题是我需要实际输入数据以及时间戳、逻辑地址和访问块大小等。

我一直在尝试通过在 ubuntu VirtualBox 环境中使用“blktrace | blkparse”和“iozone”来解决这个问题,但它似乎不起作用。

blkparse 中有一个选项用于设置输出格式以显示数据包数据,-f "%P",但它不打印任何内容。

下面是我使用的命令:

$> sudo blktrace -a issue -d /dev/sda -o - | blkparse -i - -o ./temp/blktrace.sda.iozone -f "%-12C\t\t%p\t%d\t%S:%n:%N\t\t%P\n"
$> iozone -w -e -s 16M -f ./mnt/iozone.dummy -i 0

在打印格式“%-12C\t\t%p\t%d\t%S:%n:%N\t\t%P\n”下,其他的都打印好了,但是根本不打印“%P”。

有没有人知道为什么不显示数据包数据? 或者谁知道其他方法来获取具有实际输入值的磁盘 IO 数据包数据?

【问题讨论】:

【参考方案1】:

据我所知blktrace 没有捕获实际数据。它只是捕获元数据。捕获真实数据的一种方法是编写自己的内核模块。 FIU.edu 的一些学生在本文中做到了这一点: "I/O deduplication: Utilizing content similarity to ..."

我也会在 linux-btrace 邮件列表中问这个问题: http://vger.kernel.org/majordomo-info.html

【讨论】:

以上是关于如何获取具有实际输入值的磁盘 IO 跟踪?的主要内容,如果未能解决你的问题,请参考以下文章

如何从嵌套对象中获取具有值的所有键

如何获取包含具有特定值的 text_field 的表的那些 tr?

如何创建获取请求以获取具有特定属性值的对象

Plotly:如何获取跟踪颜色属性以绘制具有相同颜色的选定标记?

如何获取所有在 tag 属性中具有值的视图?

如何获取sql中给定行具有空值的列数?