2016-04-13 2 views
1

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です。

私には何が欠けていますか?

おかげ

答えて

0

は(-fに加えて)-ffをお試しください:

-ff: If the -o filename option is in effect, each processes trace is written to filename.pid where pid is 
    the numeric process id of each process. This is incompatible with -c, since no per-process counts are 
    kept. 
+0

良い提案。残念ながら、これはすべてのopen()イベントの取得には至りませんでした。 –

関連する問題