カーネル・パニックを制御するパラメータ

次のパラメータは、カーネル・パニックが発生する可能性がある状況を制御します。

パラメータ 説明
kernel.hung_task_panic

1に設定すると、カーネル・スレッドまたはユーザー・スレッドがTASK_UNINTERRUPTIBLE状態(D状態)でkernel.hung_task_timeout_secs秒より長くスリープしている場合にカーネルはパニックを起こします。I/Oの完了を待機している間、プロセスはD状態のままです。この状態のプロセスは、停止または割込みできません。

デフォルト値は0であり、この場合パニックは無効化されます。

ヒント:

ハングしたスレッドを診断するには、カーネル・スレッドとユーザー・スレッドの両方のカーネル・スタックを表示する/proc/PID/stackを調べます。

kernel.hung_task_timeout_secs

警告メッセージが生成されるか、カーネル・パニックが発生する(kernel.hung_task_panicが1の場合)までに、ユーザーまたはカーネル・スレッドをD状態のままにできる期間を指定します。デフォルト値は120秒です。値を0に指定すると、タイムアウトを無効化できます。

kernel.nmi_watchdog

1 (デフォルト)に設定すると、カーネル内のマスク不可能な割込み(NMI)ウォッチドッグ・スレッドが有効になります。NMIスイッチまたはOProfileシステム・プロファイラを使用して未定義のNMIを生成するには、kernel.nmi_watchdogの値を0に設定します。

kernel.panic

パニック後、システムが自動的に自己リセットを行う前の秒数を指定します。

値が0 (デフォルト値)の場合、システムは一時停止状態になり、トラブルシューティングのためにパニックの詳細情報を収集できます。

自動リセットを有効にするには、ゼロ以外の値を設定します。メモリー・イメージ(vmcore)が必要な場合、Kdumpがこのイメージを作成するのに十分な時間を残します。推奨値は30秒ですが、大規模システムの場合はより長い時間が必要です。

kernel.panic_on_io_nmi

0 (デフォルト)に設定すると、通常は修正不可能なハードウェア・エラーを示すI/Oチャネル・チェック(IOCHK) NMIをカーネルが検出した場合に操作の続行が試行されます。1に設定した場合は、システム・パニックが発生します。

kernel.panic_on_oops

0に設定すると、カーネルでoopsまたはBUG状態を検出した場合でも、システムは操作を続行しようとします。1 (デフォルト)に設定した場合は、パニックが発生する前にカーネル・ログ・デーモンklogdにoops出力を記録する時間を持たせるため、数秒遅延が発生します。

OCFS2クラスタで、値を1に設定して、カーネルoopsが発生した場合に、システムでパニックを起こす必要があることを指定します。クラスタ操作に必要とされるカーネル・スレッドが失敗した場合、システムは自己リセットを行う必要があります。それ以外の場合、他のノードはあるノードの応答が遅れているのか、応答できないのかを検出できず、その結果クラスタ操作が停止する可能性があります。

kernel.panic_on_unrecovered_nmi

0 (デフォルト)に設定すると、修正不可能パリティまたはECCメモリー・エラーを示すNMIをカーネルが検出した場合に操作の続行が試行されます。1に設定した場合は、システム・パニックが発生します。

kernel.softlockup_panic

0 (デフォルト)に設定すると、NMIウォッチドッグ・スレッドがタイムスタンプの更新を、kernel.watchdog_threshで指定した秒数の2倍より長い時間にわたって失敗する原因となるsoft-lockupエラーをカーネルが検出した場合でも、操作の続行が試行されます。1に設定した場合は、システム・パニックが発生します。

kernel.unknown_nmi_panic

1に設定すると、カーネルが未定義のNMIを検出した場合にパニックが発生します。未定義のNMIは、手動でNMIスイッチを押して生成できます。NMIウォッチドッグ・スレッドでは未定義のNMIも使用されるため、kernel.nmi_watchdogを1に設定した場合はkernel.unknown_nmi_panicの値を0に設定します。

kernel.watchdog_thresh

カーネルがhard-lockupおよびsoft-lockupエラーのチェックに使用するNMIパフォーマンス監視割込みの生成の間隔を指定します。CPUが割込みに対してkernel.watchdog_threshで指定した秒数以上応答しない場合は、ハード・ロックアップ・エラーが考えられます。デフォルト値は10秒。値を0に指定すると、ロックアップ・エラーの検出を無効化できます。

vm.panic_on_oom

0 (デフォルト)に設定した場合、カーネルのOOM-killerによって、タスク・リスト全体がスキャンされ、パニックを回避するためにメモリー占有プロセスが停止されます。1に設定すると、カーネル・パニックは発生しますが、特定の状況では存続できます。プロセスで、メモリー・ポリシーまたはcpusetを使用することによって特定のノードへの割当が制限され、これらのノードがメモリー不足の状態になった場合、OOM-killerによってあるプロセスを停止できます。他のノードのメモリーには空きがあり、システム全体としてはまだメモリー不足ではない可能性があるため、この場合パニックは発生しません。2に設定すると、OOM状態で常にカーネル・パニックが発生します。1および2の設定は、定義されたフェイルオーバー・ポリシーに応じて、クラスタで使用することを目的としています。