Vagrant + VirtualBoxで動作が重い時の対処法
検証で使ってるVagrantのWEB表示がやたら遅いので調べた。
こちらのサイトを参考に対処。
Vagrant + VirtualBoxでアプリがやたら重い時に試した方が良いこと
環境
サーバ
- OSX 10.9.5
- Virtualbox 4.3.16
- Vagrant 1.6.5
ゲスト
- CentOS 6.3
問題が改善するケース
ゲストOSの外部との接続をNATで行っているときに、名前解決に時間がかかっている。
解決する方法
参考サイトのとおりに、Vagrantファイルに下記を書けば一見解決、激速になる。
Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
...
config.vm.provider "virtualbox" do |vb|
vb.customize ["modifyvm", :id, "--natdnsproxy1", "on"]
vb.customize ["modifyvm", :id, "--natdnshostresolver1", "on"]
end
...
end
が、しかし。
MXレコードが引けなくなるので、メールが送れなくなる。
[root@localhost ~]# dig gmail.com mx
; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.23.rc1.el6_5.1 <<>> gmail.com mx
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 39119
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 0
;; WARNING: Messages has 1 extra bytes at end
;; QUESTION SECTION:
;gmail.com. IN MX
;; ANSWER SECTION:
gmail.com. 3600 IN A 74.125.235.246
gmail.com. 3600 IN A 74.125.235.245
;; Query time: 1 msec
;; SERVER: 10.0.2.3#53(10.0.2.3)
;; WHEN: Fri Oct 24 00:23:08 2014
;; MSG SIZE rcvd: 60
MXレコード引いたらAレコードが帰ってくるトリッキーな状態w
メールが送れないのは困るのでどうしましょうかという話ですが、
sendmailの設定でmailコマンドなどで使用するSMTPサーバを指定できるので、
/etc/mail/sendmail.mc
に下記を追加してあげます。
define(\'SMART_HOST\', \'SMTPサーバのアドレス\')dnl
追記したらm4コマンドでsendmail.cfを作ってあげましょう。
m4 /etc/mail/sendmail.mc > /etc/mail/sendmail.cf
あとは/etc/init.d/sendmail restart
でプロセスを再起動すれば
自身でメールを送るのではなく、SMTPサーバに送信をお任せできるので
問題なくメールが送れる状況になると思います。
(MXレコードを自分で引いてメールを投げることがなくなる)
先ほどVirtualBoxのリリースノートもざっくり見てみましたが
まだバグフィックスしてないっぽ。