Vagrant + Ubuntu 16.04環境において、Rubyコードを実行したら次のように表示されたので原因を調べてみた。
`fork': Cannot allocate memory - fork(2) (Errno::ENOMEM)
現在のメモリー使用状況
free
コマンドでメモリーの使用状況を表示してみると次のようになっていた。free
列の空きメモリが78MiB
と少ないのが原因か?
$ free -m total used free shared buffers cached Mem: 993 915 78 17 16 44 -/+ buffers/cache: 853 140 Swap: 0 0 0
対策
vagrant reloadしてVagrantを立ち上げ直したところ、空きメモリが649MiB
に回復した。
total used free shared buffers cached Mem: 993 344 649 12 35 128 -/+ buffers/cache: 179 814 Swap: 0 0 0
この状態でエラーが発生したRubyコードを実行すると正常に動作した。メモリが足りなかった様子。