search
LoginSignup
32

More than 1 year has passed since last update.

posted at

updated at

メモリ不足でLaravelインストール、composer update失敗

なにがおきたか

Laravelを5.8から6にしようと
composer updateしたら

下記のようなエラーがたくさん出た


mmap() failed: [12] Cannot allocate memory

mmap() failed: [12] Cannot allocate memory
PHP Fatal error:  Out of memory (allocated 448884736) (tried to allocate 20480 bytes) in phar:///usr/local/bin/composer/src/Composer/Json/JsonFile.php on line 275

Fatal error: Out of memory (allocated 448884736) (tried to allocate 20480 bytes) in phar:///usr/local/bin/composer/src/Composer/Json/JsonFile.php on line 275

mmap() failed: [12] Cannot allocate memory
PHP Fatal error:  Out of memory (allocated 448884736) (tried to allocate 20480 bytes) in phar:///usr/local/bin/composer/src/Composer/Console/Application.php on line 82

思い出せばLaravelを入れたときもメモリが足りないとかなったなと思い備忘録

対処法

swapの設定をすればいいらしい

そもそもswap何やねんレベルだったので勉強になった

Swap とは、簡単に言うと物理メモリを使い切った場合に、物理メモリの代わりに使われる領域のことで、パーティション、またはファイルを使って作成できますが、推奨されるのは、パーティションです。

設定する

確認

free -m

freeコマンドは空きメモリと使用しているメモリの容量を表示するコマンドです。

結果こんな感じで、swapは0

              total        used        free      shared  buff/cache   available
Mem:            983         474         416           0          92         392
Swap:             0           0           0
sudo dd if=/dev/zero of=/swapfile bs=1M count=2048
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile

ddコマンドで指定サイズの空のファイルを作成
mkswapで、作成したファイルをスワップ領域として使用できるようにする
swaponでスワップ領域を有効化

dd」コマンドはファイルをブロック単位で読み出し、指定通り変換して出力します ※1。入力と出力にデバイスを指定できるため、HDDのパーティションをコピーする、USBメモリやCD-ROMのバックアップを取る、といった使い方が可能です。
処理するブロック数を指定でき、任意のサイズのファイルを作成するといった用途にも役立ちます。

勉強になった....

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
What you can do with signing up
32