FreeBSD 10.3-RELEASEサーバーでいくつかのカーネルページエラー(Fatal Trap 12)が発生しました。これは、数ミリ秒の稼働時間から数日の稼働時間まで、どこでも発生します。現在のプロセスは常に異なります(pagedaemon、pkg、find)。
オンラインで読んだ後、答えはハードウェアエラーを指しているようです。私の質問は、欠陥のあるハードウェアがカーネルレベルのページエラーにどのように正確に現れるかです。ハードウェアエラーが原因でカーネルパニックが発生せず、詳細な説明情報を提供しないのはなぜですか?
アップデート:以下のBobの投稿に基づいてハードウェアテストを行いました。私のメモリースティックはひどいです。私はこれを決定するためにmemtestを使用しました。
答え1
カーネルパニックは、ソフトウェアによって検出されたエラー、またはカーネルコードで発生し、カーネルによって検出されるハードウェアトラップの一種です。カーネルができる唯一の安全なことはパニック(つまり自発的な停止)です。これは、カーネルに誤ったメモリの内容をコードで実行させる不良メモリ、またはカーネルに誤ったデータがインポートされ、エラーや検出された不整合を引き起こす不良メモリが原因で発生する可能性があります。
カーネルレベルのページエラーは、誤ったカーネルデータが原因で発生します。カーネルが存在しないページにアクセスしようとします。これは、おそらくメモリから得られた無効なアドレスを使用するためです。この場合、カーネルは間違ったアドレスを使用したことだけを知ることができます。デバッガでコードを追跡してどのように開始したかについての手がかりを得ることができますが、いくつかの原因に遭遇する前には非常に遠くに戻ることはできません。
結論は、カーネルレベルのページエラーが発生した場合にハードウェアをテストするだけです。