tencent cloud

Cloud Virtual Machine

ドキュメントCloud Virtual MachineトラブルシューティングLinuxインスタンスのメモリに関する障害Linuxインスタンス:ログに「fork: Cannot allocate memory」というエラーが表示される

Linuxインスタンス:ログに「fork: Cannot allocate memory」というエラーが表示される

PDF
フォーカスモード
フォントサイズ
最終更新日: 2025-09-08 17:34:17

故障について

ログに、「fork:Cannot allocate memory」というエラー情報が表示されます。下図のとおりです。



考えられる原因

プロセス数の限度を超えたことが原因と考えられます。システム内部のプロセス総数がpid_maxに達すると、新しいプロセスが作成されたときに「fork:Cannot allocate memory」というエラーが報告されます。

ソリューション

1. 処理手順 を参照して、インスタンスのメモリ使用率が高すぎないかどうかを確認します。
2. 総プロセス数が限度を超えていないか確認し、プロセス総数pid_maxの設定を変更します。

処理手順

1. メモリ使用率が高すぎる問題の処理 を参照して、インスタンスのメモリ使用率が高すぎないかどうかを確認します。インスタンスのメモリ使用率が正常な場合は、次の手順に進みます。
2. 以下のコマンドを実行して、システムのpid_max値を確認します。
sysctl  -a | grep pid_max
返された結果に基づき、対応する操作を行います。
返された結果が下図のとおりで、pid_maxデフォルト値が32768である場合は、次の手順にお進みください。


返されたエラー情報が「fork:Cannot allocate memory」である場合は、次のコマンドを実行し、pid_maxを一時的に増やす必要があります。
echo 42768 > /proc/sys/kernel/pid_max
もう一度コマンドを実行し、システムのpid_max値を確認します。
3. 以下のコマンドを実行して、システム内部のプロセス総数を確認します。
pstree -p | wc -l
プロセス総数がpid_maxに達すると、システムは新しいプロセスを作成するときに「fork:Cannot allocate memory」というエラーを報告します。
説明:
ps -efLコマンドを実行して、プロセスの起動が多いプログラムを特定します。
4. /etc/sysctl.conf設定ファイルのkernel.pid_max値を65535に変更して、プロセスの数を増やします。変更が完了すると、下図のようになります。



5. 以下のコマンドを実行して、直ちに設定を有効にします。
sysctl -p


ヘルプとサポート

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

フィードバック