Linuxサーバーで「-bash: fork: Cannot allocate memory」エラー発生時の対応方法

コマンド実行時等で「-bash: fork: Cannot allocate memory」エラー

Linuxサーバーでコマンド実行時などで「-bash: fork: Cannot allocate memory」(bash: fork: メモリを確保できません)というエラーが発生し、動作が不安定になる現象があります。

原因確認方法

これは起動中のプロセスがメモリリークを起こし、使用可能なメモリが不足している状態です。

メモリ使用状況は下記コマンドで確認できます。

$ free -m
              total        used        free      shared  buff/cache   available
Mem:            983         198         563           0         221         649
Swap:             0           0           0

free コマンドで出力される free の部分が使用可能なメモリ領域です。この部分が少ないとメモリをallocateできなくなります。

具体的にどのプロセスがメモリを消費しているかは、下記コマンドで確認可能です。

$ ps auc --sort -rss

上記は、起動プロセスを使用メモリが多い順にソートして出力します。

メモリリークを起こしているプロセスがあれば、PIDを指定しkillコマンドで停止させることが可能です。

$ sudo kill -0 [PID]

コマンド自体を受け付けない状態の場合は、OS自体をリブートさせるしかない場合があります。

この記事のご感想やコメントはこちら

メールアドレスが公開されることはありません。 が付いている欄は必須項目です