多くの開発環境を Vagrant に移行し始めました。これまでのところ、これはほとんどすべての点で優れていますが、最初の Drupal 移行は使用できません。信じられないほど遅いです。私たちの Wordpress、CakePHP、および Node.js サイトはすべて非常に適切またはそれ以上のパフォーマンスを発揮しますが、Drupal ではありません。この考えはただひどいです。
ボックスは、Veewee が作成した Ubuntu 12.04 64 ビット マシンです。これは、すべての Web ベースのプロジェクトで使用するベース ボックスと同じであるため、独自のものはありません。サイト ディレクトリには、すべてのサイト リソースを含む正規ディレクトリ ( )と、チームが使用しているモジュールに明らかに必要なsites/my-site/
ドメイン名 ( ) を持つその正規ディレクトリへのシンボリック リンクがあります。sites/dev.mysite.com -> /vagrant/www/sites/my-site
これは混合 Windows/OSX 開発チームであり、両方のプラットフォームで遅いです。私の唯一の半型破りなスニペットVagrantfile
はこれです:
config.vm.forward_port 80, 8080
config.vm.share_folder( "v-root", "/vagrant", ".", :extra => 'dmode=777,fmode=777' )
# Allows symlinks to the host directory.
config.vm.customize ["setextradata", :id, "VBoxInternal2/SharedFoldersEnableSymlinksCreate/v-root", "1"]
Vagrant::Config.run do |config|
config.vm.provision :shell, :path => "provision.vm.sh"
end
私のシェル プロビジョナーは、次の 2 つのことだけを行います。
- drush をインストールします
- 正規サイト ディレクトリへの前述のシンボリック リンクを作成します。
- Nginx サーバー ブロックを書き出します
- 必要に応じて、
settings.php
ファイルを作成します。
パフォーマンスを向上させるためにできることはありますか? たくさん?
アップデート
問題がリモート データベースにあるように見える点までこれを絞り込みました。プロジェクトの荷物がない場合と比較するために、Drupal 7.21 の新しいコピーをダウンロードし、Vagrant Web サーバーから 3 つの異なるデータベースに対して標準インストールを実行しました。
- Web サーバー (localhost) と同じ Vagrant VM 上に作成された新しいデータベース
- 元の質問 (dev) で使用された共有開発サーバー上に作成された新しいデータベース
- EC2 インスタンス (tmp) に作成された新しいデータベース
それが完了したら、新しい Drupal インストールにログインし、ホームページ (localhost:8080) を 5 回読み込みました。次に、各データベースに接続し、同じページを同じ方法でロードしました。Drupal がリモート データベースに接続されていると、ページの読み込みが 4 ~ 6 倍遅くなることがわかりました。
これは新規 (標準) インストールであることを忘れないでください。プロジェクトの荷物はありません。