1

具体来说,这个问题是关于 Java 和 blktrace 的,但可以概括如下:

有一个命令行应用程序 (blktrace) 可以使用参数(特别是格式)或不使用参数调用。在默认模式下调用时,此应用程序返回一个我需要的参数(起始块):

blktrace -d /dev/sda -o - | blkparse -i -

  8,0    0      144     0.011134344   524  I   W 819422 + 8 [kjournald]

但不是另一个(IO 大小)。我可以添加参数(-f)来指定后一个参数:

blktrace -d /dev/sda -o - | blkparse -f "%D %2c %8s %5T.%9t %5p %2a %3d %N\n" -i -

  8,0    0      237     2.013031115   524  I   W 4096

但这样做意味着我失去了前者。该应用程序是从 Java 程序中调用的。

我无法同时从应用程序中获取这两个参数。我不能同时运行应用程序的两个实例。我可以一个接一个地运行一个实例,但这意味着我的数据并非全部针对相同的 IO 集进行编译。

知道如何为相同的读/写操作获取两个参数吗?

4

1 回答 1

1

在 %S 报告起始扇区的情况下使用以下命令怎么样:

blktrace -d /dev/sda -o - | blkparse -f "%D %2c %8s %5T.%9t %5p %2a %3d %N %S\n" -i -
于 2012-10-14T11:35:43.337 回答