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 &gt; /etc/mail/sendmail.cf

あとは/etc/init.d/sendmail restartでプロセスを再起動すれば
自身でメールを送るのではなく、SMTPサーバに送信をお任せできるので
問題なくメールが送れる状況になると思います。
(MXレコードを自分で引いてメールを投げることがなくなる)
先ほどVirtualBoxのリリースノートもざっくり見てみましたが
まだバグフィックスしてないっぽ。

Comments are closed.