tencent cloud

Cloud Virtual Machine

メモリ枯渇前にLinux OOMがトリガーされた

PDF
フォーカスモード
フォントサイズ
最終更新日: 2025-09-08 17:30:55
##故障について Linux CVMは、メモリ使用率が100%でない場合、OOM(Out Of Memory)をトリガーします。下図のとおりです。



考えられる原因

システムで使用可能なメモリがmin_free_kbytesの値よりも低いことが原因と考えられます。min_free_kbytesの値は、Linuxシステムに最低限の空きメモリ(Kbytes)の予約を強制することを意味します。システムの使用可能なメモリが、設定したmin_free_kbytesの値よりも低い場合、デフォルトでシステムがoom-killerを起動するか、強制的に再起動します。具体的な挙動は、カーネルパラメータvm.panic_on_oomの値によって決定付けられます。
vm.panic_on_oom=0の場合、システムはOOMを提示し、oom-killerを起動して、メモリの占有が最も多いプロセスを強制終了します。
vm.panic_on_oom =1の場合、システムは自動的に再起動します。

ソリューション

1. 処理手順 を参照して、トラブルシューティングを行います。インスタンスのメモリ使用率が高すぎないか、またプロセス総数が制限されていないか確認してください。
2. min_free_kbytes値の設定を確認し、正しい設定に変更します。

処理手順

1. メモリ使用率が高すぎる問題の処理 を参照して、インスタンスのメモリ使用率が高すぎないかどうかを確認します。インスタンスのメモリ使用率が正常な場合は、次の手順に進みます。
2. ログエラーfork:Cannot allocate memory を参照して、プロセス数が限度を超えていないかどうか確認してください。プロセス総数が限度を超えていない場合は、次の手順に進んでください。
3. CVMにログインし、以下のコマンドを実行して、min_free_kbytesの値を確認します。
sysctl -a | grep min_free
min_free_kbytesの値の単位はkbytesです。下図に示すとおり、min_free_kbytes = 1024000は1GBを意味します。


4. 以下のコマンドを実行して、VIMエディタを使用し/etc/sysctl.conf構成ファイルを開きます。
vim /etc/sysctl.conf
5. iを押して編集モードに入り、vm.min_free_kbytes設定項目を変更します。この設定項目が存在しない場合は、設定ファイルに直接追加すればOKです。
説明:
vm.min_free_kbytesの値をメモリ合計の1%以下に変更することをお勧めします。
6. Escを押して**:wqと入力し、次にEnter**を押してVIMエディタを保存して終了します。
7. 以下のコマンドを実行して、設定を有効にすれば完了です
sysctl -p


ヘルプとサポート

この記事はお役に立ちましたか?

フィードバック