2016/06/01
開発環境を統一してみる
はじめに
筆者はvagrantというツールを使用して
自分のPC内にプロジェクトごとの仮想環境を構築し、日々開発しております。
プロジェクトが増えるたびに仮想環境を作り、起動すればその分メモリ消費します。
今回は、その無駄に消費するリソースを少し改善するためのブログです。
vagrantのプラグインを入れてみる
アクセス可能なホスト設定をしなければならないのを解消してくれるプラグイン。
vagrant-hostsupdater
これはvagrantの設定にhost一覧などを記述しておくだけで
自動的に起動時に設定をしてくれます。(rootでないとパスワードを初回に求められる)
1 | vagrant plugin install vagrant-hostsupdater |
と実行するだけ。
vagrantの設定をする
- test1.rails.dev
- test2.rails.dev
というホストを同じvagrant環境に入れるには、、
Vagrantfileに
1 2 3 | config.vm.hostname = "rails.dev" config.vm.network "private_network", ip: "192.168.33.111" config.hostsupdater.aliases = ["test1.rails.dev", "test2.rails.dev"] |
と記述すれば良いだけです。
IPアドレスは重複しない任意のローカルIPにします。
編集を終えたらvagrant upしましょう。
仮想環境のapache設定をする
1 2 | /etc/httpd/conf.d/test1.conf /etc/httpd/conf.d/test2.conf |
と言うVirtualHost設定を上記で設定した環境毎に設定します。
1 2 3 4 5 6 7 8 9 10 11 12 13 | <VirtualHost *:80> DocumentRoot "/var/www/html/test1/public/" ServerName test1.rails.dev ErrorLog "/var/log/httpd/test1_error_log" PassengerEnabled On RailsEnv development RewriteEngine on <Directory /var/www/html/test1/public> PassengerEnabled On AllowOverride All DirectorySlash On </Directory> </VirtualHost> |
実効効率はどうか?
仮想環境がトータルでどのくらいメモリ消費しているか調べる。
1 | ps aux | grep Virtual | awk 'BEGIN{total=0}{total+=$6}END{print total, "Byte"}' |
統合前
1650804 Byte
、、、2つの作業環境(それなりに重い)を立ち上げて一つずつブラウザで開きました。
1.5GiBほどです。結構あります。
次に統合した一つの仮想環境で計測。
統合後
1612152 Byte
、、、正直大して変わらなかった。。
じゃあ、CPU効率はどうか?
起動時間:
統合前 80seconds, 1秒あたりの負荷平均 139%
統合後 72seconds, 1秒あたりの負荷平均 85%
ローディング時:
統合前 1秒あたりの負荷平均 26%
統合後 1秒あたりの負荷平均 60%
起動時は大分違いました。
ピークは200%超えだったのでPCにやや優しい感じです。
ブラウザ表示時の負荷は後者の方が大きかった。もう少し研究して改善の余地はありそうです。
、、と、統計的には大して変わらないのですが
開発の手間、管理の仕方、実際のファンのうるささ、、からしたら導入は有りかなと思いました。まる。
Author Profile
スターフィールド編集部
SHARE