blog.kur.jp

バイオリンと山、自転車をこよなく愛するkurのチラシの裏。たまには技術的なことを書いたりするかも知れません。

VagrantにインストールしたCentOSから外部へのネットワーク接続が非常に遅い問題

最近、サイボウズLiveが公開しているAPIを叩くアプリケーションを趣味で作っているのだけれども、アプリケーションからサイボウズLiveAPIを叩くのが非常に遅い。OAuthで認証するとき、アクセストークンを取得する時、APIを実際に叩いて情報を取得する時、とにかく全てが遅い。最初はサイボウズLiveAPIが遅いのかと思って諦めて、取得した情報をキャッシュする仕組みだとか、ユーザに遅さを感じさせないようなしくみを作っていたのだけれど、さて実際の環境であるさくらインターネットのVPSにデプロイしてみると、思った以上に早い。あれ、これもしかしてローカルの開発環境の問題か?と気がついて、解決したのでメモ。

ローカルの開発環境はというと、VagrantにboxでCentOSをインストールしてApacheやらPHPやらを突っ込んで使っているだけ。不思議に思ってTwitterでなんでだろう?ってつぶやいてみたところ、いつもお世話になっているMugeso氏からリプライを頂いた。

なるほど、名前解決か確かに怪しいなと思って色々調べて見たら解決方法を下記の2つ発見しました。両方試してみたけど、両方いけた。

ひとつはRHEL6/CentOS6では、single-request-reopen を必須にしたい…[IPv6]に書いてあるように、CentOSの名前解決の問題。このページによると、Queryの再送に5秒程度余計にかかるって書いてあるのでビンゴっぽいですね。

もうひとつはvagrantでCentOSのVMを立ちあげて、ネットワークが遅い時に試すことに書いてある方法。こちらもおそらく解決している問題は一緒なのだけれど、CentOSの設定ファイルではなく、Vagrantの設定ファイルをいじって、Virtualboxのオプションとして認識させる方法。

以上、俺専用メモ。