2011-01-03 8 views
5

タイトルは単純に言えば、質問です。出来ますか?Drupalで(キャッシュなしで)<200ms応答を得ることは可能ですか?

これまでのスクリプト言語の経験は、パフォーマンスを向上させるためにすべてをキャッシュし、後で生成されたHTMLファイルを提供する必要があるということです。

いくつかのユースケースでは問題ありませんが、実際には新しいページをリアルタイムで生成する必要がある場合は不可能です。

Drupalは、Webページをレンダリングするのに最大3秒(またはそれ以上!)かかることがあります(PHPでは実行時間でありDBではありません)。それはクレイジーです。完全に狂っている。

多くのプロジェクト(Facebookなど)がPHPを使用している場合、明らかに問題は私のものです。しかし、この問題のためにグーグルが一般的であることを示しています。あまりにも一般的です。

(もちろん、私はAPC for PHPをインストールしましたが、確かに役立ちますが、PHPは依然として超低速です)。

私はこれがDrupal/PHPの現実であると仮定する必要がありますか?

ありがとうございました。

+2

ノートへの移行:facebook.comは、AJAXを使用し、それは非常に大きなパフォーマンスプラスです。 –

+0

もちろん可能です。それはちょうどいつもどんな種類の機械にかかっています!たぶん、Drupalの最適化のヒントを最初に探しますか?そのプラグインシステムは非常に重いことがあります。また、私はDrupalのページがリクエストごとに700のデータベースクエリ*を行うことを見てきました。それは調査する価値のあるものだ –

+0

3秒間にブラウザの出力が含まれていますか? –

答えて

4

短い回答はいいえ。しかし、なぜキャッシュしたくないのですか?

「リアルタイムで新しいページを生成する」とはどういう意味ですか?認証されたユーザー(誰でもログインしたユーザー)はすぐに新しいコンテンツを見ることができます。匿名ユーザーは少し待たなければならないかもしれませんが(例えば、Boostを使用している場合)、新しいコンテンツが追加されたときにいつでもコントロールすることができます。可能であれば、キャッシュにする必要があります。

Boost(静的HTMLファイル)、Memcache、およびDrupalキャッシュをインストールできます。それは励まされます、特に最後のものです。サーバ上でnginxを実行することもできます。

また、Drupalのドロップイン代替品であるPressflowを使用すると、パフォーマンスが向上します。

http://pressflow.org/

あなたがしたい場合は..あなたは、Drupalは非常に高速にすることができ、何度も議論され、その。 2ビットの記事のいくつかのチェックアウト:キャッシングの利用可能な方法を利用し

http://2bits.com/contents/articles

することで、低ホスティングコストを保つのを助けるのではなく、最適化されていないサイト上でより多くのハードウェアをスローします。

+1

キャッシュできない理由の1つは、すべてのページに表示する動的コンテンツブロックがある場合です。私は今この正確な問題と戦っている。私はキャッシュを使いたいと思っていますが、私たちは動的な機能を必要としています。私が見つけたキャッシングソリューションのどれも、それを扱うことができませんでした。私の質問はこちら:http://stackoverflow.com/questions/4511721/caching-a-drupal-site-with-session-specific-data-on-every-page – Spudley

+1

はい。ブロックキャッシングは難しいことですが、Ajaxブロックのようにajax経由でブロックをリクエストすることでこれを回避するモジュールがあります:http://drupal.org/project/ajaxblocks – Kevin

2

FacebookはPHPを使用しているため、優れたパフォーマンスが必要な理由は明らかです。彼らの解決策は、オープンソースとしてリリースしたHipHopと呼ばれる独自のPHP用コンパイラを書くことでした。 PHPのパフォーマンスが心配な人は、必ず改善してみてください。

欠点は、(まだ)PHP関数セットの100%をカバーしていないため、一部のPHPプログラムがコンパイルできないことです。私はDrupalがこれに収まる場所はわかりませんが、試してみる価値があります。テストコンパイルを行うことで失われるものはありません。それがうまくいかなければ、あなたは何も失っていないでしょう。

Drupalコミュニティには、Drupal Coreの一部をPHPエクステンションに変換するプロジェクトがあります。つまり、いくつかの主要なDrupal関数がコンパイルされたコードとしてPHPランタイムに組み込まれています。 project page hereを参照してください。しかし、これはまだかなり早い段階にあることに注意してください。まだ実験的なものとして挙げられており、少数の機能しかカバーしていません。しかし、プロジェクトに注目する価値はあるかもしれません。

0

私がDrupalのロードパフォーマンスに関して知っているヒントは、40個以下のモジュールをインストールすることです。

特に、contribモジュールがあまりにも多くのフックとメモリを使用し、パフォーマンスが低下する場合、40を超える。

その他のヒント:

  • htaccessだけ
  • 利用スロットルモジュール
  • 使用apahe起動時に一度だけ呼び出されるようにvhost.confhtaccessを入れimagecache uiviews ui可能であれば
  • 生産現場での削除すべてのhtml、css、jsファイルのgzip
  • cdnモジュールとamazonサーバーソリューション
  • 利用サイト
  • 最後のいくつかの部分またはブロックのためのAJAXとの十分な予算がある場合は、オラクル
関連する問題