io - block 级 I/O 跟踪

标签 io block trace

我正在尝试访问云基准测试的块级 I/O 跟踪。我看过 YCSB、Rain 和其他一些基准测试套件,但它们都没有提供块/字节级别的日志记录。我正在考虑只运行这些基准测试之一并使用 blktrace/blkparse 来获取 I/O 跟踪,但问题在于这种方法不会捕获在 blktrace/blkparse 工作时由页面缓存完成的 I/O 请求在文件系统层之下(在块 I/O 层)。

是否有云基准测试套件具有块/字节级跟踪功能?如果没有,那么我如何获得 blktrace/blkparse 之类的功能,其中包括那些由页面缓存完成的请求(可能是拦截读/写系统调用?)。

谢谢。

附:将 O_DIRECT 与 blktrace/blkparse 一起使用的选项是不可取的,因为您不能将它用于已编译的程序。

最佳答案

您可以查看的另一个工具是 iosnoop http://www.brendangregg.com/blog/2014-07-16/iosnoop-for-linux.html我只用它来跟踪磁盘级跟踪,但还有一堆其他性能工具 https://github.com/brendangregg/perf-tools这也许可以帮助您满足您的需求。

关于io - block 级 I/O 跟踪,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7920571/

相关文章:

c++ - 顺序读取大文件

scala - SBT、println 和 Scala 控制台应用程序的奇怪问题

ruby - 允许 block 处理可变数量参数的干净方法是什么?

layout - Magento - 显示 block 但仅在我使用 getChildHtml 调用它时显示

java - 压缩会提高性能吗?

ruby - 未声明的可枚举对象是否可以在 block 内调用自身?

c# - 加载跟踪监听器属性

.net - 使用 Ent-Lib 拨号跟踪的意外后果,没有错误记录

java - 将 curl 调用转换为 java urlconnection 调用

Java createNewFile 无法在本地网络上工作