タグ付けされた質問 「performance」

Drupalのパフォーマンス、測定方法、および改善方法に関する質問に使用してください。



9
パフォーマンスのスケーリングとチューニングに関する実世界の経験
私が働いているウェブサイトはローンチ直後に大ヒット率を持つと言われています。クライアントは、1日あたり1秒あたり約2500ヒットの可能性について話しています。 このヒット率はおそらく野生のクライアントの楽観的であり、可能な限り最大のサーバーを取得することは別として、Drupalが大きなヒット率をサポートするように構成する最良の方法は何であるかという事実を無視します。 Drupal.orgインフラストラクチャのスケーリング、Drupalパフォーマンスのブログ、Drupalのスケーリングのベストプラクティスなどの多くのページを読みましたが、私が探しているのは、これを行う実際の経験、何が機能するか、何が機能しないか、何をするかです期待する。

10
Drupalのパフォーマンスをどのように改善しますか?
Drupalは開発が速いですが、パフォーマンスは非常に劣っています。1秒あたり50件のリクエストに到達するのは困難です。 そして、単純なWebページには非常に多くのSQLクエリがあります。Drupal.orgでフォーム送信のリクエスト時間をテストする場合、終了するのに常に数秒かかります。 Webサイトの速度をどのように改善しますか?
54 7  6  performance 

5
Nginx対Apache-実際の使用法の比較と統計情報はありますか?
遊ぶための新しいサーバーがあり、空白のキャンバスを見つめています。好きなものを置くことができます。私はApacheに慣れていますが、nginxがApacheよりもはるかに多くのトラフィックを10、100倍、さらに多く処理できることを聞き続けています。それだけでなく、「はるかに高速」です。 記事を検索すると、Drupalに関係のないものがたくさん見つかります。または、Drupal関連の記事に出くわすと、1)構成ファイルのセットアップ方法を簡単に説明した構成ファイル、または2)「いいえ、nginxを使用しないで、PHPでApacheを使用する」と言います。 fcgid」と表示されますが、その理由についての説明はありません。 それで、Drupalに関しては、ここでの現実は何ですか? 例として、この2bits.comの記事に沿って何かを探しています。ここでは、著者はfcgidを使用してApache mod_phpとApacheをかなり詳細に調査し、それぞれの長所と短所を比較検討し、実世界での影響を示すケーススタディを提供しました。この記事には、自分の状況に最適なアプローチについて知識に基づいた決定を下すのに十分な情報があります。 その著者はmod_phpとfcgidを比較していますが、私はApacheとNginxの同じタイプの包括的で現実的な世界を探しています。 誰もがNginxに切り替えて、Apacheと比較した違いによって「吹き飛ばされ」ましたか?既にAPC、Memcache、およびVarnishのようなアグレッシブキャッシングを使用している高度に最適化された環境であっても、変更する変数がApacheをNginxに置き換えるだけである場合、この新しい代替テクノロジーへの投資に値するほどの違いをもたらします? このサーバーにアクセスするサイトは、1か月に平均200万PVを取得します。セントOS 6を実行するLAMPスタック。8コアのRAMを備えた4コアCPU。MemcachedとAPCはこのミックスの一部になります。Drupalのインストールについて特別なことはありません-基本的には、約50モジュールのバニラ7です。

16
パフォーマンスの問題:最初のリクエストの遅延
D7サイトとMinelliサブテーマをまとめました。その過程で、さまざまなテーマ、さまざまなモジュールで多くのことを実験しました。途中でどこかで奇妙なパフォーマンスの問題が発生しましたが、現在はどのテーマ/モジュール/構成が原因であるかわかりません。 問題は、最初にサイトにアクセスしたとき、最初のページが表示されるまで約15秒かかることです。その後、サイト内を移動でき、非常に反応がよいです。1時間ほど放置してから戻ってくると、最初の要求は非常に遅くなります。 キャッシュをクリアしたので、それは問題になりません。また、使用していないテーマとモジュールを無効にしました。サイトを新しいインフラストラクチャに移動しましたが、問題はそれに続きました。 次はどこに行きますか?

9
フィールドのスケーラビリティのコンテキストで、フィールドの再利用と新しいフィールドの作成のバランスはどうですか?
ウェブサイトで次のフレーズを読みました。 コンテンツタイプに新しいフィールドを追加する代わりに、既存のフィールドを追加することは、システムの複雑さを軽減し、スケーラビリティを改善するためのより良いオプションです。 そして、いくつかの疑問が生じます。 開発中のシステムでは、3つまたは4つのコンテンツタイプでフィールドを再利用する可能性がありますが、引用されたフレーズが示すようにスケーラビリティを改善する代わりに、フィールドのテーブルがより速くボトルネックになるため、それが減少することを恐れています(少なくともこの場合の理由は、そのフィールドのすべての値が一緒になって年間数百万になり、テーブルが大きくなりすぎるためです)。同意しますか? 設計する際に目標とする合理的な最大数は何行ですか?そうすることで、いつフィールドを再利用し、いつ新しいフィールドを作成するかを決定できます(再利用の機会がそこにあるとしても)。

2
PHP 5.4およびDrupal 7
PHP 5.4はPHP 5.3よりも高速だと聞きました。 Drupal 7を5.4の下で実行しても大丈夫でしょうか、それともさまざまな貢献モジュールがサイトを破壊し始めるかもしれませんか? とにかく、APCオペコードキャッシュ(おそらく5.4)を使用すると、まったく利点がありませんか? ありがとう
31 7  performance 

4
大規模サイト向けのメモリ節約キャッシュ消去戦略?
Drupal 7サイトの1つには、数千のフィールド、多数のコンテンツタイプ、25を超えるビュー、および数百(まもなく数千)のプロファイルタイプがあります。このため、エンティティフィールド情報をより適切にキャッシュするコアパッチ(http://drupal.org/node/1040790)と、(1つのHUGEを使用する代わりに、表示によってビューをより適切にキャッシュする-devバージョンのViewを使用しています。すべてのビューデータを含むビューキャッシュ行)。 これにより、サイト上のほとんどのページが160MB以上ではなく20-30MBのRAMを使用して読み込まれます(10MB以上のフィールドとビューのcache_ *テーブル行をプルアップする代わりに、パッチはcache_ *データをより効率的に維持するのに役立ちます)。 ただし、キャッシュの再構築には非常に長い時間がかかるという問題があります。通常、1分または2分以上。また、この間、Drupalはページをロードしません(読み取ろうとしているキャッシュがまだ構築されていないため、他のリクエストは待機する必要があります)。 トラフィックの少ないサイクルでは、これは大した問題ではありません。100人程度のユーザーは、ページが読み込まれるまで1分間待つだけです。しかし、トラフィックの多いサイクルでは、Apacheサーバーは40以上のCPU負荷で狂い始め、すべてのワーカースレッドが待機しているためにメモリがすぐに一杯になり、メモリを使い果たしてスワップを引き起こします。それは一種の死のスパイラルです。httpdを再起動すると問題は解決しますが、正常に戻るには5〜10分かかります。 私の目標は、キャッシュをクリアしてもサイトがひどくならないようにすることです。たとえば、admin_menuの個々のキャッシュクリア機能(「CSS and JS」、「Menu」、「Theme registry」など)を使用すると、「Page and else」オプションを押すまでスムーズに進みます。それは、ビューのキャッシュがリセットされるとき(キャッシュする必要があるビューの数を含む非常にCPUとデータベースに負荷がかかる操作)、およびフィールド情報キャッシュがリセットされるときです(このサイトでもCPUとデータベースに負荷がかかります)。 だから...私の質問/アイデア: ブラシや他のシェルスクリプトを使用して、「すべてのキャッシュを一度に爆発させ、クリーンな再構築を期待する」よりも賢い方法でキャッシュをクリアすることは可能ですか? キャッシュのクリア中にhttpリクエストをブロックして、Apacheが大量のキャッシュスタンプリクエストで詰まらないようにできますか? Drupal /通常のhttpdリクエスト以外でキャッシュをクリアできる場合、おそらくキャッシュクリア操作に高いPHP memory_limitを設定し、ユニバーサルmemory_limitを元に戻すことができます(個々のhttpdスレッドがキャッシュをクリアする必要がある場合は、現在256MBに設定されています) ...)。 基本的に:UIのボタンをクリックするdrush cc allか、使用する以外に、Drupalですべてのキャッシュをクリアするインテリジェントで優雅な方法はありますか? [ 明確化のための編集:私が抱える主な問題は、キャッシュの再構築です。(a)時間がかかり、(b)再構築が完了するまで他のすべてのリクエストをブロックします。トラフィックの多い時間帯で再構築がそれほど致命的ではないようにする方法を見つけたいと思います。]
30 7  drush  caching  performance 

2
スクロールせずに見えるコンテンツのレンダリングをブロックするJavaScriptとCSSを排除する
Drupal 7サイトを構築しています。これらは、私が使用するモジュールの一部です:アダプティブテーマ(テーマ)、ビューとコンテンツペイン、パネル、ミニパネル、どこでもパネル、ページマネージャー、メニュー用のSuperfish、Addthis、Chosen(ドロップダウン)。 サイトのパフォーマンスを改善し、CSSファイルとJSファイルを処理するために、Advaggモジュールを使用しています。 GoogleのPagespeedテストを実行すると、「修正する必要がある」という次のエラーが表示されます。 スクロールせずに見える コンテンツのレンダリングブロックJavaScriptとCSSを排除するページには、6つのブロックスクリプトリソースと8つのブロックCSSリソースがあります。これにより、ページのレンダリングが遅れます。ページ上のスクロールせずに見えるコンテンツは、次のリソースの読み込みを待たずにレンダリングできませんでした。ブロッキングリソースを延期または非同期でロードするか、HTMLでこれらのリソースの重要な部分を直接インライン化してください。 これは、Googleが提供する情報です。 レンダーブロッキングJavaScriptを削除する CSS配信を最適化する AdvaggモジュールまたはDrupalコアの設定を変更して、この問題を解決する方法はありますか? この目標を達成する別の方法はありますか? 更新-mikeytown2の回答に従って変更を実装した後、GoogleのPagespeedテストで次のメッセージを受け取りました。 スクロールせずに見えるコンテンツのレンダリングブロッキングJavaScriptとCSSを排除する ページには、6つのブロッキングスクリプトリソースと4つのブロッキングCSSリソースがあります。これにより、ページのレンダリングが遅れます。 ページ上のスクロールせずに見えるコンテンツは、次のリソースの読み込みを待たずにレンダリングできませんでした。ブロッキングリソースを延期または非同期でロードするか、HTMLでこれらのリソースの重要な部分を直接インライン化してください。

3
ワニスを使用する場合、「ブースト」モジュールを使用することは冗長ですか?
DrupalインスタンスをVarnishサーバーの背後で実行しますが、サイトを高速化する代替/追加の方法を検討しています。Boostは、この目的のために頻繁に命名されるモジュールです。ページの静的バージョンを生成し、再生成時間を回避するためにそれらを提供するように見えますが、すでにニスでキャッシュしている場合、これは私たちに利益をもたらしますか?

4
認証されたユーザーのパフォーマンスを最適化する最適な方法は?
ここのキーワードは認証されています! 現在(私の知る限り)、匿名アクセスを最適化するための事実上の方法は、静的ページキャッシュ(varnish / squid / boost)を使用しています。 しかし、私が知る限り、これはほとんどのユーザーが認証されているシナリオではあまり役に立たないようです。 明らかなAPC、Memcache、およびハードウェアでお金を投げる以外に、ほとんど認証されたユーザーでトラフィックの多いサイトをパフォーマンスチューニングする最良の方法は何ですか? 例:drupal.org、ソーシャルネットワーク、コミュニティなど 私は現在、Drupal 6にもっと興味があるので、MongoDBは今は適用しないと思います...
22 6  caching  performance 

4
MySQLマスター/スレーブ構成を活用するコアを取得する方法は?
MySQLマスター/スレーブレプリケーションが機能しないという質問とその回答を読みました。 スレーブデータベースの使用は、Drupalコアではほとんど実装されていません。独自のモジュールを開発している場合、db_queryの呼び出しでは、$ options配列を使用してスレーブデータベースを使用することを指定する必要があります。この配列の設定方法については、DatabaseConnection :: defaultOptionsを参照してください。 子猫を殺さずにコアをハッキングして、スレーブSELECTクエリを取得db_query()およびdb_select()作成する方法はありますか? デフォルトでは、これらの関数は、スレーブにクエリするように特に指示されない限り、マスターにクエリを実行します(APIを参照)。db_query($query, $args, array('target' => 'slave'))これを達成するためにスレーブとコア(およびすべてのモジュール)をクエリするために記述する必要があります。 検索(スレーブ部分を参照)とアグリゲーターのみがこれを活用しているようです。 編集: 10月25日 プレスフロー7が出ているのを見ましたが、今それが大いに役立つかどうかわかりません。 何か関連するものが見つからなかったので、答えを得るのを助けるためにちょっとした賞金を試しましょう。 編集: 10月31日 主に、このトピックに関するCrellのコメントを心配しています:スレーブをどうするか?。 主SELECTに、スレーブにクエリを送信する場合、レプリケーションの遅延で何が起こるかnode_load()、新しいノードを保存した直後にやりたいことがあるという事実に問題があります。

3
Ajaxコールバックの最速のメソッド/実装は何ですか?
さまざまな/多数のマップイベントで、ajaxを介してマーカーをロードするマップがあります。現在、hook_menu()json / jsを印刷するアイテムのカスタムページコールバックを定義しています。 私のページコールバックはコンテンツを返さず、コンテンツのみを印刷するため、Drupalは完全なテンプレート、メニューなどをレンダリングしないため、JavaScript のみでページを返すことができます。 これは機能しますが、Drupalはまだ完全にブートストラップされていると思います。つまり、ドロップしたいオーバーヘッドがかなり増えています。 私が見てきた高性能のJavaScriptのコールバックハンドラ「高性能JavaScriptのコールバックハンドラ」としての地位を誇り、これは、短期的にそれが提供していますかのように、ルックスjs.php賛辞にindex.phpにあなたの要求を指示すると、カスタマイズ/リミット/ Drupalがデフォルトで行うブートストラップを最適化します。 残念ながら、jsプロジェクトにはまだD7のリリースがありません(ここに1つの請願書があります)。 DrupalでAjaxコールバックを実装する最速の方法は何ですか?
18 7  performance  ajax 

1
Drupalは「is_dir」を4000回以上呼び出していますか?
非常に重要なサイトの読み込み時間に問題があった後、XHPROFをインストールし、統計を調べてコードを改善できる場所を確認しました。 私にはわからない面白いことを見つけました。Drupalは、ほぼすべての要求で4000時間以上「is_dir」を呼び出します。これには、実行に約800msかかります。それはなぜですか、それをスピードアップする方法はありますか? 2〜4秒の読み込み時間で800msが大きな部分を占めます。
17 7  performance 

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.