Rails Server WEBrickの起動やレスポンス速度が遅い場合の対処法

最近Railsを触っているのだが、いかんせんWebrickの起動やレスポンスが遅い。

世のRubyistはこんな環境で開発しているのか(いやない)ということで調べた。

環境

  • Ruby on Rails4
  • ruby 2.1.1p76
  • Vagrant 1.5.2

Webrickの設定を見直す

google先生に伺うと下記の解決方法が多かったがボクの環境では効果が見られなかった。

1
2
3
4
5
6
7
8
$ gem which webrick
/home/vagrant/.rbenv/versions/2.1.1/lib/ruby/2.1.0/webrick.rb

$ vi /home/vagrant/.rbenv/versions/2.1.1/lib/ruby/2.1.0/webrick/config.rb

:DoNotReverseLookup => nil
:DoNotReverseLookup => true

Vagrant Synced Foldersの設定

synced_folderをnfs にするとパフォーマンスの向上が期待できると何処かで見た記憶があったので

ドキュメントを覗いてみると rsync がバージョン1.5から利用できるとのこと。 使わない手はないと早速1.5に上げて試してみた。

1
config.vm.synced_folder "../target", "/share", type: "rsync"

初回起動時は立ち上がるまで若干時間がかかったが、それ以降は遅いとは感じない。

肝心のWebrickのレスポンス速度は劇的に上がった。今までと比べると爆速。

注意点

ホストOS側で変更した点がゲストOSに反映されない。 rsyncを利用する場合は rsync または rsync-auto を実行する必要がある。

1
2
3
4
$ vagrant up
$ vagrant rsync #1度きりの同期
or
$ vagrant rsync-auto #監視して変更があれば同期 若干タイムラグがある。

結局は…

rsyncで少し利用してみたが、同期のラグが気になった。 変更してすぐに確認できないことがあるのでこの辺はストレスに感じる。

また同期は一方方向 ホスト→ ゲストの為、仮想マシン上でコマンドを打ってファイルを作成しても ホストには反映されない。

自分はゲストからコマンドを打つことが多いので困った点だった。 こういった点はこれから改善されるのだと思う。

ということでパフォーマンス的に問題がなかったので nfs に変更して開発している。


追記 2014/04/15

参考

Feature Preview: Rsync Synced Folders

Synced Folders

Comments