Vagrant+VirtualBox+Chef SoloでさくらのVPSで構築しているほぼ同じDebian環境を構築してブログの開発環境をつくった。といってもゲストOSでMySQLだけを動かしてWordPress自体はホストOS(Mac OS X)のPHPビルトインサーバで動かしている。
しかしどうもデータベースサーバへの接続が遅い。MySQLが遅いというよりホストOSとゲストOS間のネットワークが遅いような気がする。ページのリロードで5秒くらい待たされるので開発に支障をきたすレベル。別にslowクエリーのログやbinログを出力しているわけでもないし、データベースが大きいわけでもないのでチューニングしていなくてもデフォルト設定でそこまで遅くなるとは思えない。
Vagrantを使う前まではVMware Fusion上にUbuntuをインストールしてMySQLを実行していたがそこまで気になる遅さはなかった。
いろいろ調べた結果、名前解決に問題があった。IPアドレスだとすぐに接続する。vagrant-hostsupdaterプラグインで /etc/hosts
に記述した名前解決だと何故か遅い。DNSキャッシュが効いていないのかよくわからない。普段hostsファイルを使った名前解決でそんなに支障をきたした覚えがないのだが何かHDDの大掃除をして環境がおかしくなってしまったのだろうか。とりあえずゲストOSのIPアドレスで接続することにする。
ところでWordPressもデータベース接続にはPDOに移行しようとしているようなのでmysql関数がなくなりSQLiteで開発できるようになればわざわざ仮想環境構築しなくてもPHPビルトインサーバだけでローカルで動かせるのになーと思う。