すべてのプロダクト
Search
ドキュメントセンター

Alibaba Cloud Linux:UKFEF

最終更新日:Jul 05, 2024

Alibaba Cloud Linux 3は、5.10.60-9.al8.x86_64バージョンのカーネルでUnified Kernel Fault Event Framework (UKFEF) をサポートしています。 UKFEFは、リスクを引き起こす可能性のあるAlibaba Cloud Linux 3上の例外イベントを収集し、統一された形式でイベントレポートを生成するために使用されます。 このトピックでは、UKFEFによって収集されるイベント、UKFEFがイベントレポートを生成するために使用するメソッド、およびUKFEF制御インターフェイスについて説明します。

背景情報

オペレーティングシステムは、重大な問題が発生する前に、いくつかの特性を表示したり、認識可能なエラーメッセージを送信したりします。 O&Mでは、このような情報を使用して障害を予測し、予防策を講じることができます。 しかしながら、情報は、異なるフォーマットで生成され、異なるモジュール間で分散される。 その結果、オペレーティングシステムで例外イベントを収集すると、次の問題が発生する可能性があります。

  • 例外イベントを解析し、その影響を判断するには、オペレーティングシステムに関する専門知識が必要です。

  • 例外イベントはさまざまな形式で表示されるため、自動O&Mの難易度が高くなります。自動O&Mは、収集した例外イベントをフォーマットと照合し、データクレンジングを実行して、実際の要件に基づいて不要なデータを除外します。

上記の問題を解決するために、Alibaba Cloud Linux 3はカーネル層でUKFEFを提供しています。 UKFEFは、リスクを引き起こす可能性のあるさまざまな例外イベントから情報を収集し、イベントの重大度を判断して、統一された形式でイベントレポートを生成します。 これらのレポートには、問題が発生するシナリオと推奨されるリスクレベルが含まれます。 これにより、O&M中にシステム例外を識別しやすくなります。UKFEFは、既知の例外イベントも分類し、以前のカーネルバージョンでは使用できなかったシステムリスクレポートを提供します。

UKFEFは、例外イベントのタイプ、影響、統計などの複数のディメンションに基づいてレポートを生成します。 これにより、O&M中に例外を効率的に診断できます。さらに、データ損失を防ぐために複数の方法を使用してイベントレポートが生成されます。

イベントの説明

UKFEFで分類したイベントの種類とレベル、およびイベントレポートの生成方法を次の表に示します。

イベント情報

説明

イベントタイプ

UKFEFは、オペレーティングシステムカーネルで次の一般的なイベントを収集します。

  • ソフトロックアップ

  • 読み取りコピー更新 (RCU) ストール

  • ハングタスク

  • グローバルメモリ不足 (OOM)

  • cgroup OOM

  • ページ割り当ての失敗

  • リストの破損

  • 悪いmm_struct

  • I/O error

  • EXT4-fsエラー

  • マシンチェック例外 (MCE)

  • 致命的な信号

  • warning

  • パニック

イベントレベル

UKFEFは例外イベントを3つのレベルに分類します。

  • わずか: 例外イベントはオペレーティングシステムの通常の実行には影響しませんが、オペレーティングシステムにデプロイされたサービスにはジッタが発生する可能性があります。 例外イベントの変更を引き続き監視できます。

  • Normal: 例外イベントは、現在のアプリケーションプロセスで発生する可能性があります。 現在のアプリケーションプロセスの終了、再起動、移行などの対策を講じることを推奨します。

  • Fatal: 例外イベントは、オペレーティングシステムに致命的な損害を与える可能性があります。 すぐにビジネスを移行することを推奨します。

イベントレポート

UKFEFは、次の方法を使用してイベントレポートを生成します。

  • カーネルログを使用して、単一のイベントの詳細を表示します。 例:

    class Fault event[module:type]:messages. At cpu cpuid, task pid(cmdline). Total fault: cnt

    詳細には、次のパラメータが含まれます。

    • class: 例外イベントのレベル。

    • module: sched、mem、io、fs、net、ハードウェアなど、例外イベントが属するモジュールです。 複数のモジュールによって例外が発生した場合、このパラメーターの値は一般的です。

    • type: 例外イベントのタイプ。

    • messages: 例外イベントのカスタムメッセージ。

    • cpuid: 例外イベントが発生したCPUのID。

    • pid(cmdline): 例外イベントに対応するプロセスのpidおよびcmdline。

      説明

      pidの値が-1の場合、対応するプロセスは実行されていません。

    • cnt: システム起動後の現在のタイプの例外イベントの合計発生数。

  • /proc/fault_eventsファイルを使用して、すべての型の例外イベントの発生総数を表示します。 例:

    Total fault events: 0
    Slight: 0
    Normal: 0
    Fatal: 0
    soft lockup: 0
    rcu stall: 0
    hung task: 0
    global oom: 0
    cgroup oom: 0
    page allocation failure: 0
    list corruption: 0
    bad mm_struct: 0
    io error: 0
    ext4 fs error: 0
    mce: 0
    fatal signal: 0
    warning: 0
    panic: 0

制御インタフェース

インターフェイス

説明

/proc/sys/kernel/fault_event_enable

UKFEFを有効にするかどうかを指定します。 有効な値:

  • 1: UKFEFが有効です。

  • 0: UKFEFは無効です。

/proc/sys/kernel/fault_event_print

UKFEFがイベントレポートを生成するかどうかを指定します。 有効な値:

  • 1: UKFEFはイベントレポートを生成します。

  • 0: UKFEFはイベントレポートを生成しません。

/proc/sys/kernel/panic_on_fatal_event

Fatalイベントが発生したときにオペレーティングシステムのPanicメカニズムをトリガーするかどうかを指定します。 有効な値:

  • 1: パニックメカニズムをトリガーします。

  • 0: パニックメカニズムをトリガーしません。