12

多くの開発環境を 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 倍遅くなることがわかりました。

これは新規 (標準) インストールであることを忘れないでください。プロジェクトの荷物はありません。

4

11 に答える 11

5

この問題はほぼ確実にskip_name_resolve( で必要とされているmy.cnf)、または VirtualBox が多数のファイルを含む共有ディレクトリをうまく処理していないことのいずれかです。どちらも で簡単に追跡strace -cできますが、一度に 1 つずつ修正して、どちらがパフォーマンスの問題を解決しているかを確認する方が簡単な場合があります。

これらの両方の変更を行った後も速度が低下する場合はお知らせください。さらにデバッグできます。

于 2013-05-17T14:17:47.693 に答える
4

同様のことでグーグル経由でここにたどり着いたので、他の人がこれが役立つことを期待して返信しています。

開始点として precision32 vagrant ボックスを使用している場合、ボックスにはデフォルトで 360MB の RAM しかないことに注意してください。

ラムを上げて(少なくともVirtualBoxを使用したVagrant V2では)そのように

config.vm.provider :virtualbox do |vb|
    vb.customize ["modifyvm", :id, "--memory", "1024"]
end

これにより、Drupal の応答性が大幅に向上しました。

于 2013-06-25T14:45:30.867 に答える
3

これは単なるPHP/MySQLアプリであるため、Drupalについては、カスタマイズ方法以外に特別なことはあまりありません。あなたはこれのいくつかをしたかもしれません、しかしここに問題を分離するためのいくつかの提案があります。

  • Drupaldblogでエラーを確認してください。
  • nginxとphpのログでエラーを確認してください。
  • 実行しているアクティブなモジュールの数を検討してください(100を超える場合は非常に重いインストールになります)
  • 新しいDrupalインスタンスをインストールして比較します。これにより、問題がインスタンスに限定され、Drupal全般に限定されない場合があります。

Drupalのインスタンスであることがわかった場合

  • develモジュールをインストールし、メモリレポートを有効にして、ページの読み込みごとに使用されているメモリの量を把握し、改善のためのベースラインを確保します。
  • APCまたは別のPHPopcacheがインストールされていることを確認し、ヒット率が良好であることを確認してください。以前に実行したことがない場合は、develによって報告されたメモリ使用量の違いに注意してください。
  • xhprofのようなものを実行するか、主要な違反者が見つかるまで疑わしいモジュールを無効にします。
  • mysql slow&index logを有効にして潜在的な問題を見つけ、インデックスを追加するか、他のアクションを適切に実行します

他のアプリが正常に動作している場合は、特定のモジュールに問題があるか、Drupalのインストールが一般的に多く、最適化またはより多くのメモリが必要であると思われます。

于 2013-02-26T16:17:55.907 に答える
0

nodejs と gulp をインストールすると、drupal サイトのパフォーマンスが低下し始めました。drupal ブートストラップ 4 barrio sass サブテーマには nodejs/gulp が必要なため、これを行う必要がありました。次に、Windows の vagrant と npm install コマンドで問題が発生しました。すべての npm install コマンドは、シンボリック リンクを作成し、Windows OS がこれらのリンクを認識しないため、失敗します。サイトの node_modules フォルダーへのシンボリック リンクを vagrant のホーム ディレクトリに作成する必要がありました。これを行った後、 npm install コマンドが機能します。しかし、その後、この Web サイトの応答が非常に遅いことに気付き始めました。私の他のサイトは高速で動作します。

于 2021-06-19T15:54:56.867 に答える