trace-cmd
を使用して、私が見ているカーネルクラッシュに関する詳細情報を収集しようとしています。残念ながら、カーネルは「カーネルパニック - 同期していません」というメッセージでクラッシュします(つまり、ソケットとファイルのバッファはフラッシュされないため、クラッシュ時にバッファに残ったものは必然的に失われます)。panic()が発生する直前にtrace-cmd/ftraceを使用してfunction_graphを取得します
- 力
trace-cmd
プロセスにそのファイルシステムにバッファまたはソケットをフラッシュする:する方法はありますか? OR
- バッファリングを避けるためにtrace-cmd/ftraceを作成します(つまり、シーンの背後でprintk()を呼び出してnetconsoleを使用します)?
私は単純に良いスナップショット続くか、VMを再デプロイする元に戻すことができるため、仮想化環境でのtrace-cmd
コマンドは、私は、ハードドライブは時折破損することがありますことを気にしないことを実行していますので。
ftraceとtrace-cmdの間に別のバッファがあると考えられるため、これで問題は解決しませんでした。バッファーはSTDOUTをアンバッファーするだけです。 –
はい、もちろんです。このアプローチは単にバッファリングを減らそうとします。 もう1つの方法は、パニックを回避して、予測不能な結果でカーネルを長くすることです。 いくつかのケースでパニックを無効にすることができます。 "/ proc/sys/kernel/*のドキュメント"(https://www.kernel.org/doc/Documentation/sysctl/kernel.txt)の "panic_on_ *"の設定を見てください。 – MrCryo