アプリケーションが作成したファイルを確認するには?

アプリケーションが作成したファイルを確認するには?

私のシステムでsar報告された平均ディスク書き込み速度は約5 MB / sです。使用しながらdstat永久的ではありませんが、30-50MB/sのスパイクが発生してスリープ状態になります。

それを使って、iotop私はほとんどの書き込みがアプリによって行われていることを発見しました(しかしそれがどれほど確実かはわかりません)。

を使用すると、straceアプリfatraceが開き、別のディレクトリにファイルが作成され、そのファイルを閉じたり削除したりすることができます。文書はたくさんありますstraceが、テキストはあまりありません。増え続けるファイル(ログなど)があるかどうかを調べるために追加情報を見つけましたが、見つかりません/proc/pid/fdでした。だから私の結論は、すべての書き込みがアプリケーションによって生成された小さな一時ファイルを介して実行されることです。

各ファイルにどのくらい記録されているかを確認するには?各ファイルに書き込まれたバイト数を含むレポートが必要です。

これを行う方法はありますか?各ファイルの変更を確認または使用するなど、openシステムコールを再作成または使用することを検討しましたが、より簡単な方法があることを願っています。writesystemtap

ベストアンサー1

ブレンデン・グレッグのiosnoop(彼の一部)perf-tools)はアプリケーションのI / Oに関する詳細情報を提供します。たとえば、次のようになります。

# ./iosnoop
Tracing block I/O... Ctrl-C to end.
COMM             PID    TYPE DEV      BLOCK        BYTES     LATms
supervise        1809   W    202,1    17039968     4096       1.32
supervise        1809   W    202,1    17039976     4096       1.30
tar              14794  RM   202,1    8457608      4096       7.53
tar              14794  RM   202,1    8470336      4096      14.90
tar              14794  RM   202,1    8470368      4096       0.27
tar              14794  RM   202,1    8470784      4096       7.74
tar              14794  RM   202,1    8470360      4096       0.25
tar              14794  RM   202,1    8469968      4096       0.24
tar              14794  RM   202,1    8470240      4096       0.24
[...]

(以下から取り込んだ例彼のブログ)。

これを使用して、システム内のすべてのI / Oを追跡したり(上記のように)単一プロセスまたはデバイスに制限したりできます。

おすすめ記事