vagrant
VirtualBox

[Vagrant 1.x] メモリーサイズを上げる

More than 3 years have passed since last update.

macbook airにvagrantとvirtual boxでvmを立てて、CentOSを入れてRailsのプロジェクトを動かしているのですが、割りと初期からよくこんなエラーが出てました。

/home/hoge/.rbenv/versions/2.1.1/lib/ruby/gems/2.1.0/gems/spring-1.1.2/lib/spring/application.rb:153:in `fork': Cannot allocate memory - fork(2) (Errno::ENOMEM)

メモリー系のエラーな様です。

調べてみたら対応策として、2つのことが挙げられていました。

Swap領域の確保

$ sudo swapon -s # スワップの現状確認
$ df # ディスク使用状況確認
$ sudo dd if=/dev/zero of=/swapfile bs=1024 count=256k # スワップ用のファイル作成
$ sudo mkswap /swapfile # 作成したファイルをスワップとして初期化
$ sudo swapon /swapfile # スワップを有効化
$ swapon -s # 確認

再起動時でもSwap領域を使えるようにするには

$ sudo sh -c "echo '/swapfile swap swap defaults 0 0' >> /etc/fstab"

こうすると、確かに動きます。
でもわたしの場合は、しばらくするとこれでも動かなくなりました。
swapのサイズも足りないのか??

メモリーサイズを増やす

そもそもメモリーがこれ以上割り当てられないと怒られているので、メモリーを増やして上げればいいんじゃないかということです。

Vagrantfile
# -*- mode: ruby -*-
# vi: set ft=ruby :

# Vagrantfile API/syntax version. Don't touch unless you know what you're doing!
VAGRANTFILE_API_VERSION = "2"

Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
  config.vm.provider :virtualbox do |vb|
    
    
    vb.customize ["modifyvm", :id, "--memory", 1024]
  end

  # :
  # other settings
  # :
end

とりあえず1GB割り当てました。
これでなんとか動きました。

初期設定はOS推奨の最小値になっているらしいので、限界もくるのもわからなくもないかな。

あとは

$ vagrant reload

で反映されるはずです。