Linuxでopen()、close()、read()の呼び出しを取得するのにstraceを使用しています。対象となるプロセスは、桟橋のWebサーバーです。私が知る限り、straceはopen()へのすべての呼び出しを記録していません。おそらく他のものもありますが、私はファイル記述子をopen()呼び出しに関連付けることを試みていません。例えばLinuxでstraceがopen()へのすべての呼び出しをログに記録しない
、開始straceの:-eトレース= -f
straceのオープン、クローズ、読み-oを/ tmp/strace.out -p62881
私はその後、100個の静的ファイルを取得するためにwgetコマンドを使用し。すべてが正常に取得されました。 1回の実行では、56個のオープンイベントしか記録されませんでした。別の100の異なるファイルで、私は66のオープンイベントを得ました。
"-f"を使用すると、スレッドのすべてのLWPIDにstraceが追加されます(「プロセス62881が25個のスレッドで接続されています - 割り込みを中止して 」)。複数の "-p"オプションを使用して明示的にアタッチしようとすると、成功したアタッチメッセージは1つだけ表示されますが、複数の "操作が許可されていません"というメッセージが表示されます。
テストの前にJettyを再起動してキャッシュをクリアしました。
カーネルバージョンは2.6.32-504.3.3.el6.x86_64(Red Hat)です。 Straceパッケージのバージョンはstrace-4.5.19-1.19.el6.x86_64です。
私には何が欠けていますか?
おかげ
良い提案。残念ながら、これはすべてのopen()イベントの取得には至りませんでした。 –