単一のディレクトリ内のファイルに書き込む既知の名前を持つ複数のプロセスがあります。記録したい数量一定期間のディスクブロックへの読み書き数(いいえファイルアクセスのみ)パラメータ変更によってI / O量が大幅に減少するかどうかをテストします。現在これを使用していますが、パーティションiostat -d -p
全体に制限されています。
答え1
これが単純で面白く聞こえることがわかりますが、問題のアプリケーションを制御できる場合(おそらくテスト環境で)、ディレクトリを自分のパーティションにマウントしてから待ってからiostat
それを知らせるだけです。指す。
物理ドライブが関係している場合は、ループバックマウントを使用して偽にすることができます。
dd if=/dev/zero of=/bigdisk/LOOPFILE bs=1024m count=1024m # 1gb loopback file
mke2fs -j /bigdisk/LOOPFILE
mkdir /tmpcopy
mount -o loop /tmpcopy /bigdisk/LOOPFILE
cp -r -p $SPECIALDIR2MONITOR /tmpcopy
umount /tmpcopy
mount -o loop $SPECIALDIR2MONITOR /bigdisk/LOOPFILE,
iostat
これにより、競合しているすべてのディスクI / Oが完全に削除されるわけではありませんが、出力はユーザーのニーズにもっと具体的であると確信しています。
答え2
使用inotifywait -m DIRNAME
できるイノティファイツール。
答え3
直接的な方法はないようです。必要なデータを取得する一つの方法は仮想ファイルシステム訪問を記録します。ジャーナルファイルシステムそれはあなたが興味のあるすべてのデータを表示できるかどうかはわかりませんが、そのようなファイルシステムです。 (そうでない場合は、そのデータに対して適切なエンコード操作を実行することもできます。)
mkdir /tmp/replica
loggedfs /path/to/directory /tmp/replica
mycommand --root=/tmp/replica
fusermount -u /tmp/replica