具体的には、この質問はJavaとblktraceに関するものですが、次のように一般化できます。
パラメータ(具体的にはformat)を使用して、または使用せずに呼び出すことができるコマンドラインアプリケーション(blktrace)があります。デフォルトモードで呼び出されると、このアプリケーションは必要な1つのパラメーター(開始ブロック)を返します。
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プログラム内から呼び出されます。
アプリケーションから両方のパラメーターを同時に取得することはできません。アプリケーションの2つのインスタンスを同時に実行することはできません。インスタンスを次々に実行することはできますが、それは私のデータがすべて同じIOセット用にコンパイルされていないことを意味します。
同じ読み取り/書き込み操作で両方のパラメーターを取得する方法はありますか?