メモリの少ないvpsでswapを作りbundleする

digital ocean mem512MB 上でのよくわからないエラーを倒した。

TL;DR

メモリの少ないvpsでbundleして途中で落ちたら、disk上にswap作れば解決することがある。
swap作り方 How To Add Swap on Ubuntu 14.04

経緯

小さめのrubyライブラリはbundleうまくいくのだけど、railsアプリがbundleの途中で落ちるようになってしまった。bundleのエラーはこんな感じ。

"/home/appuser/local/ruby-2.0/lib/ruby/gems/2.0.0/gems/rake-10.3.2/lib/rake/file_utils.rb:54:in `block in create_shell_runner': Command failed with status (): [bundle --gemfile Gemfile --no-deployment -...] (RuntimeError)"

なんで落ちるかよく分からん、終了コード無いってどういうことだ。とぐぐったら、これはassets precompileで落ちてるのだけど、メモリ不足だとそうなるっぽい。
ruby on rails – "Command failed with status ()" when precompiling assets – Stack Overflow

syslog見たらドンピシャのout of memoryがあった。

# /var/log/syslog
Dec 25 12:35:14 development-blue-do1 kernel: [81224.579364] Out of memory: Kill process 10067 (bundle) score 365 or sacrifice child
Dec 25 12:35:14 development-blue-do1 kernel: [81224.579592] Killed process 10067 (bundle) total-vm:265644kB, anon-rss:182900kB, file-rss:0kB

なるほどーとtutorialの通りにswap設定。

How To Add Swap on Ubuntu 14.04

ビンゴで直った。やった。

感想

digital ocean はチュートリアルとかブログとかめっちゃ充実してて便利。 New Ubuntu 14.04 Server Checklist | DigitalOcean $10 promoアフィリエイト

広告

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中