blktrace 只能跟踪一个特定的进程吗?
Posted
技术标签:
【中文标题】blktrace 只能跟踪一个特定的进程吗?【英文标题】:Can blktrace only trace one specific process? 【发布时间】:2012-05-28 06:56:57 【问题描述】:现在 blktrace 将所有 io 活动转储出去,这需要花费大量时间使用 blkparse 来解析它。但是我们只对一个特定的过程感兴趣。有什么方法可以将 blktrace 配置为仅跟踪该进程?
谢谢, 杰夫
【问题讨论】:
【参考方案1】:不,blktrace 在设备上工作,因为它是一个 i/o 性能工具,而不是一个进程。我猜你必须配置一个进程来使用一个特定的块设备,但如果你可以的话,没有其他进程可以做类似的事情。
【讨论】:
谢谢,但我已经这样做了。有很多系统事件消息(例如 cfq)使得解析 44M blktrace 转储文件需要 12 分钟。正常吗?有没有办法优化它?谢谢! 我正在使用“blktrace -d /dev/sda -o - | blkparse -i -”。当我杀死 blktrace 时,blkparse 需要很长时间(解析 44M 需要 12 分钟)才能完成...... -过滤器掩码是我所知道的唯一方法,它会限制跟踪的事件类型,您可以使用它来查看是否可以获得您想要的正确的,而不是其他的。我自己还没有真正玩过这些。手册页有过滤器掩码的详细说明。【参考方案2】:使用 blkparse 的“-o”选项来避免将数据输出到标准输出。这减少了 blkparse 所需的时间。我能够在 30 秒内解析 72MB。
【讨论】:
以上是关于blktrace 只能跟踪一个特定的进程吗?的主要内容,如果未能解决你的问题,请参考以下文章