14
14

More than 5 years have passed since last update.

iMac上のVirtualBoxでCentOSが超絶遅い時の回避策(かも)

Last updated at Posted at 2014-07-25

ゲストOSのアプリがものすごく遅い。(数倍以上の遅さかもっとかも)

環境

  1. iMac(OSX 10.9.4, Marvericks)
  2. VirtualBox(4.3.12)
  3. ゲストOSは、CentOS6.5(64bit, NAT接続)
  4. アプリはネットワークを介してごにょごにょする普通のアプリ

症状

  • "tcpdump -n port 53" を見ていると5秒待ち(タイムアウト)になっているのが分かる。

出力例(先頭のタイムスタンプに注目)

11:01:04.352682 IP 10.0.2.15.44697 > 10.247.XX.20.domain: 24278+ A? xxx.co.jp. (39)
11:01:04.352831 IP 10.0.2.15.44697 > 10.247.XX.20.domain: 56006+ AAAA? xxx.co.jp. (39)
11:01:09.356909 IP 10.0.2.15.44862 > 10.247.XX.21.domain: 24278+ A? xxx.co.jp. (39)
11:01:09.357024 IP 10.0.2.15.44862 > 10.247.XX.21.domain: 56006+ AAAA? xxx.co.jp. (39)
11:01:09.357783 IP 10.247.XX.21.domain > 10.0.2.15.44862: 56006* 0/1/0 (87)
11:01:09.357790 IP 10.247.XX.21.domain > 10.0.2.15.44862: 24278* 1/2/2 A 10.247.XX.36 (126)
11:01:09.466692 IP 10.0.2.15.44552 > 10.247.XX.20.domain: 62848+ PTR? 36.XX.247.10.in-addr.arpa. (43)
11:01:14.472534 IP 10.0.2.15.59215 > 10.247.XX.21.domain: 62848+ PTR? 36.XX.247.10.in-addr.arpa. (43)
11:01:14.473590 IP 10.247.XX.21.domain > 10.0.2.15.59215: 62848* 1/2/2 PTR xxx.co.jp. (149)
11:01:14.473775 IP 10.0.2.15.33606 > 10.247.XX.20.domain: 48864+ A? xxx.co.jp. (39)
11:01:19.479448 IP 10.0.2.15.43016 > 10.247.XX.21.domain: 48864+ A? xxx.co.jp. (39)
11:01:19.480513 IP 10.247.XX.21.domain > 10.0.2.15.43016: 48864* 1/2/2 A 10.247.XX.36 (126)
11:01:19.480942 IP 10.0.2.15.35673 > 10.247.XX.20.domain: 17890+ A? xxx.co.jp. (39)
11:01:19.480945 ・・・・・
  • ssh を実行すると、接続(プロンプトがでる)までに数十秒待たされる。このとき、strace ssh hogehoge とかやると5秒待ちになっているシステムコールが分かる。
  • pingだと待ちが発生しなかったりとか、実行するコマンドによって発生状況は異なる。

回避策

$ VBoxManage modifyvm "VMNAME" --natdnspassdomain1 off --natdnshostresolver1 on

VirtualBox の NATエンジンが関係していると思われる。
詳しい人以外は、設定ファイル(.vbox)を直接編集せず、この上のVBoxManageコマンドを使うのが良いと思います。

やってみたこと

  1. ブリッジ接続(固定IP)にすると発生しない。(NATが関係している)
  2. NAT接続のままで使いたい場合は、「VBoxManage modifyvm "VMNAME" --natdnspassdomain1 off --natdnshostresolver1 on」
  3. NATでFirewall越しのDNSタイムアウトの問題の解決のためのresolv.conf(single-request-reopen)では、解消しない。(別問題と思われる)
  4. IPv6 に関係する問題らしいので、IPv6 を止めてみたが、解決しない。

参考リンク

14
14
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
14
14