/sys/kernel/debug/tracing/traceは数秒後に自分自身を上書きします。繰り返し収集を防ぐにはどうすればよいですか?

/sys/kernel/debug/tracing/traceは数秒後に自分自身を上書きします。繰り返し収集を防ぐにはどうすればよいですか?

Linux(Ubuntu 18)でトレーサーを設定すると、function_graph/sys/kernel/debug/tracing/traceに保存されているトレースは上書きされるまで数秒間保存されます。

期間は変更される可能性があるため、たとえば保存できません。

cat /sys/kernel/debug/tracing/trace >> total_trace

これは、後処理中に許可されない重複が生成される可能性があるためです。特に、一部の情報が失われる可能性があります。

ファイルを開き、新しく受信したすべての情報を別のファイルにパイプする方法はありますか?

ありがとう

ベストアンサー1

~からftrace ドキュメント:

trace_pipe:

    出力は「追跡」ファイルと同じですが、このファイルはライブトレースによるストリーミング用に設計されています。このファイルからのデータの読み込みは、新しいデータが取得されるまでブロックされます。 「追跡」ファイルとは異なり、このファイルは消費者です。つまり、このファイルを読み込むと、現在のデータをより多く表示するために順次読み込まれます。このファイルからデータを読み取ると、そのデータは消費され、順次読み込みでは再読み込みされません。 「追跡」ファイルは静的で、トラッカーがより多くのデータを追加しないと、読み取るたびに同じ情報が表示されます。トレースを無効にせずにファイルを読み込みます。

または使用trace-cmd(1)、特にtrace-cmd-show。マニュアルページから:

-p                        (小文字「P」)

    「trace」ファイルの内容を表示する代わりに、「trace_pipe」ファイルを使用してください。 2つの違いは、「追跡」ファイルが静的であることです。つまり、トレースが停止すると、「追跡」ファイルは毎回同じ内容を表示します。

        "trace_pipe"ファイルは消耗的読み取りであり、ファイルを読み取ると読み取った内容の出力が消耗し、トレースが停止しても同じ内容は再読み込みされません。ファイルもブロックされます。利用可能なデータがない場合はtrace-cmd show停止し、データが表示されるのを待ちます。

また見てくださいケニオの答え到着ftraceでTrace_pipeのバッファサイズを設定するには?trace(スタックオーバーフローで)ファイルのサイズと動作を変更する方法を学びます。

おすすめ記事