VCCWの遅さはXdebugを切れば解消する

Windows上にVCCW(Vagrant+VirtualBox)でWordPress開発環境を作ったが遅い。
とにかく遅い。異常に遅い。

インターネット越しのレンタルサーバより遅いなんてありえんやろ…。
こっちは利用者一人、SSDドライブのローカルマシンやで?

Instant WordPressだと倍くらい速いので、仮想マシンだから遅いと言われればそれまでなのかもしれないが…。
開発機なんだからスカスカ動いて欲しい!

スポンサーリンク

結論:Xdebugを切ると速い

先に結論から書くとVCCWでもXdebugを切れば速い
そこに至るまでの流れとしては、

  • Vagrantが遅い
    VCCWはPHP7のOPCacheが有効なので処理系の問題ではない
    単なるPHPファイルやHTMLは速い

    • 仮想ディスクの問題か?
  • とりまVirtualBoxのネットワーク設定を弄ったが、効果なし
    Instant WordPressだと速い

    • やはり仮想ディスクの問題か?
  • 別マシンのHyper-VにイチからUbuntuとWordPressを入れると速い
    • 仮想ディスクの問題ではなかった…Xdebugか?
  • VCCWの設定でXdebugを切ると速いヽ(=´▽`=)ノ

というものだった。

仮にディスクI/Oが原因ならMySQLを物理マシンに分けねばならず、ひと塊で開発環境を扱えるVagrantの良さが無くなるので嫌だと思っていた。
もっと単純な対処方法で済んでよかった。

Xdebugを切る方法

site.ymlの最後の方にxdebugに関する記述がある。

これらのxdebug.remote_enablexdebug.profiler_enablexdebug.remote_autostartfalseにする。

他のチューニング方法の紹介

当方の場合効果がありませんでしたが、ネットワーク系のチューニングもしたので記録を残しておきます。

方法1:パブリックネットワークにする

参照サイト様:

最近ようやく重い腰を上げ、WordPressなんかの開発環境として使っているMAMPから、別の仮想環境への移行を決意して動いてます。 Wordmove使いたい思いもあったのでWockerではなくVCCWにしました。 今回やりたかったこと VCCWの導入 他の端末からのアクセスを可能にする VCCWの導入 導入からブ...
VCCWはMAMPの置き換えとして適任。デザイナーさんにオススメ! VagrantでWordpressをセット&
はじめまして、新卒エンジニアの大久保です。 セプテーニ・オリジナルに配属されて技術研修や課題も一段落しようやく会社の業務にも慣れてきたといった感じです。今回、プロジェクトで本番環境と同じ開発環境をチームで共有するために Vagrant を使ったのですが、 ネットワーク周りが曖昧だったので勉強も兼ねて本記事でまとめたいと...
当方で配布しているVagrant環境(MTOS版/WordPress版)は、一般的なVagrant環境と同様に、NAT(Network Address Translation)でVagrantに接続するようになっています。ただ、NAT経由になっていると、WordPressのダッシュボードの表示が遅くなる問題があります。...

VCCWは「ホストオンリーアダプター」がデフォルトだが、VirtualBoxはこれだと遅いので「ブリッジ接続」にすると改善される、とのこと。

Vagrantfileの修正

作成済みVCCW仮想マシンのVagrantfileを下記のように変更してみた。

ポイント:

  • private_network” は「ホストオンリーアダプター」を、 “public_network” は「ブリッジ接続」を意味する。
  • _conf['ip']site.yml又はprovision/default.ymlipと紐づく。
    当方の環境はサブネットワークが192.168.1.0、ホストマシンのIPが192.168.1.20なので、192.168.1.21にした。
  • Realtek PCIe GBE Family Controller」の部分はコントロールパネルの「ネットワーク接続」で調べる。NICのプロパティ画面にて名前をコピペする。
    Windows NIC名称の調べ方

hostsの修正

ホストマシン側(Windows)のhostsを修正するのを忘れないように。

仮想マシン再起動

起動 or 再起動。

結果

結果は体感速度改善せず。
なお、仮想マシンのNIC設定は /etc/network/interfaces で確認できる。
Vagrantが設定した部分は #VAGRANT-BEGIN#VAGRANT-END とコメントしてくれている。

方法2:フォルダ同期をNFS方式に変更する

参照サイト様:

WordPressのローカル環境構築に便利なVCCWですが、唯一の欠点が動作が遅いことです。その欠点を克服する方法を知りました。それもお手軽かつ、効果が高いです。私はこれを導入する

VirtualBoxのshared folders機能を使ったファイル共有は遅いのでNFSで共有すると良い、とあるのでやってみた。

NFSプラグインのインストール

Vagrantfileを修正

とりあえず自分はこうした。

このままだと起動しても

NFSはhost-only networkでなければならないと言われて動かないので前章で行ったパブリックネットワークの設定を元に戻す。

結果

体感速度向上せず。

Vagrantに関する他のページ

VagrantとVCCWのインストール手順の説明。ホストOSはWindows10 Pro。 VCCWはVagrantとVirtualBoxを組合せて動くWordPress開発用の仮想マシンです。
VagrantのVCCW仮想マシンを増やす場合の操作方法の説明。