このドキュメントで説明するソフトウェアは、Extended SupportまたはSustaining Supportのいずれかにあります。 詳細は、https://www.oracle.com/us/support/library/enterprise-linux-support-policies-069172.pdfを参照してください。
Oracleでは、このドキュメントに記載されているソフトウェアをできるだけ早くアップグレードすることをお薦めします。
次のパラメータは、カーネル・パニックが発生する可能性がある状況を制御します。
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秒です。
kernel.panic
パニック後、システムが自動的に自己リセットを行う前の秒数を指定します。
値が0の場合、システムはハングして、トラブルシューティングのためにパニックの詳細情報を収集できます。 これはデフォルト値です。
自動リセットを有効にするには、0以外の値を設定します。 メモリー・イメージ(vmcore
)が必要な場合、Kdumpがこのイメージを作成するのに十分な時間を確保します。 推奨値は30秒ですが、大規模システムの場合はより長い時間が必要です。
kernel.panic_on_oops
0に設定すると、カーネルでoopsまたはBUG状態が発生した場合でも、システムは操作を続行しようとします。 1 (デフォルト)に設定した場合は、システムが数秒間遅延して、パニックの発生前にカーネル・ログ・デーモンklogd
にoops出力を記録するための時間を与えます。
OCFS2クラスタで、値を1に設定して、カーネルoopsが発生した場合に、システムでパニックを起こす必要があることを指定します。 クラスタ操作に必要とされるカーネル・スレッドがクラッシュした場合、システムは自己リセットを行う必要があります。 それ以外の場合、他のノードはあるノードの応答が遅れているのか、応答できないのかを区別できず、その結果クラスタ操作がハングする可能性があります。
vm.panic_on_oom
0 (デフォルト)に設定した場合、カーネルのOOM-killerによって、タスク・リスト全体がスキャンされ、パニックを回避するためにメモリー占有プロセスの中断が試行されます。 1に設定すると、カーネルはパニックを起こしますが、特定の状況では存続できます。 プロセスで、メモリー・ポリシーまたはcpusetを使用することによって特定のノードへの割当が制限され、これらのノードがメモリー不足の状態になった場合、OOM-killerによってあるプロセスを中断できます。 他のノードのメモリーには空きがあり、システム全体としてはまだメモリー不足ではない可能性があるため、この場合パニックは発生しません。 2に設定すると、カーネルはOOM状態の発生時に常にパニックを起こします。 1および2の設定は、優先するフェイルオーバー・ポリシーに応じて、クラスタで使用することを目的としています。