如何获取具有实际输入值的磁盘 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?