ComposerでCannot allocate memory が出た際の対処方

2020年9月3日

f:id:ryurin-business:20200117104421j:plain

AWSのEC2の安いインスタンスを使ってるとよくなるやつ。

proc_open(): fork failed – Cannot allocate memory

今回はComposerで新しくCakePHP3のプロジェクトを作ろうとした際に出てきた。。

[解決の手順]

$ sudo -s /bin/dd if=/dev/zero of=/var/swap.1 bs=1M count=1024

$ sudo -s /sbin/mkswap /var/swap.1
$ sudo -s /sbin/swapon /var/swap.1

[手順解説]

コマンド(オプション)

if:入力ファイルの指定

of:出力ファイルの指定

bs:1Mバイトのブロックの書き込み

count:1024回繰り返す→1Gのデータ領域確保

このコマンドで

/var/swap.1というスワップファイルができる

あとは2コマンドでスワップ領域への設置と有効化をおこなう。

コマンド

mkswap:スワップ領域の作成

swapon:スワップ領域の有効化

スワップとは

メモリが足りない時にメモリの中身をハードディスクに移す機能のこと

2つのものを交換する、という意味でもあるがIT界ではこの使い方はしない

 [参考例]

■ swap領域がないか確認
$ free -m
             total   used   free   shared   buff/cache   available
Mem:   1991     503     86            0            1400         1328
Swap:        0         0       0

■ 4GB の領域を確保
$ sudo dd if=/dev/zero of=/swapfile bs=1M count=4096
$ sudo chmod 600 /swapfile
$ sudo mkswap /swapfile
$ sudo swapon /swapfile

■ swap領域の確認
$ free -m
              total    used     free   shared   buff/cache available
Mem:     1991     616       88            0            1286       1218
Swap:    4095         0   4095

■ swapの永続化
/etc/fstab に以下を追記
—–
/swapfile       wap      swap     defaults     0     0
—–