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

Drupalで処理量を減らすことによって応答時間を改善するには、通常、キャッシュを使用する必要があります。

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


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 

4
キャッシュを完全にオフにする方法は?
Drupal 7でサイトを開発していますが、キャッシュにより作業が大幅に遅くなります。たとえば、フォームのテーマ機能がありました。私は戸惑いました、なぜうまくいかないのですか。キャッシュをクリアして修正されるまで。 完全にオフにする方法は?
26 7  caching 

4
ビューはコアキャッシュメカニズムを介してキャッシュされますか、または各ビューでキャッシュを直接設定する必要がありますか?
各ビューにキャッシュ設定があります。これらを設定する必要がありますか、または/ admin / config / development / performanceのコアキャッシングメカニズムがこれの一部を自動的に実行し、ビューのこれらの「余分な設定」はdrupalコアのデフォルトのキャッシング動作をオーバーライドする場合ですか?
23 7  views  blocks  caching 

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

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


2
drupal_static()はFUNCTION変数を使用しますが、どういう意味ですか?
function drupal_set_page_content($content = NULL) { $content_block = &drupal_static(__FUNCTION__, NULL); $main_content_display = &drupal_static('system_main_content_added', FALSE); if (!empty($content)) { $content_block = (is_array($content) ? $content : array('main' => array('#markup' => $content))); } else { $main_content_display = TRUE; return $content_block; } } このスニペットはcommon.incから貼り付けられます。__FUNCTION__to を渡しますが、drupal_static()この変数の意味がわかりません。外部関数自体のキャッシュを意味しますか?どのように機能しますか?戻る前に関数内で処理されるデータはありません$content_block。
21 caching 

7
SQLクエリを使用してキャッシュをクリアするにはどうすればよいですか?
モジュールの更新後、私のサイトは使用できなくなり、PHPエラーメッセージのみが表示されます。で問題を回避しようとしましたdrush ccが、それは役に立ちませんでした。 また、カスタムのPHPスクリプトを試してみましたが、それを見つけるのに問題があります DRUPAL_ROOT mysqlサーバー上のDrupal 7からキャッシュテーブルを直接クリアしたいのですが、そのためにクリアする必要のあるテーブル、特にクリアしてはいけないテーブルは不明です。 すべての[SITE-PREFIX_]cache*テーブルをクリアするだけですか?
21 7  8  caching 

7
現在のノードに応じてコンテンツを表示するカスタムブロックのキャッシュを正しく設定するにはどうすればよいですか?
現在のノードのIDを表示するだけのこの非常に基本的なブロックがあります。 <?php /** * @file * Contains \Drupal\mymodule\Plugin\Block\ExampleEmptyBlock. */ namespace Drupal\mymodule\Plugin\Block; use Drupal\Core\Block\BlockBase; use Drupal\Core\Cache\Cache; /** * @Block( * id = "example_empty", * admin_label = @Translation("Example: empty block") * ) */ class ExampleEmptyBlock extends BlockBase { /** * {@inheritdoc} */ public function build() { $node = \Drupal::routeMatch()->getParameter('node'); $build = array(); …
19 8  blocks  caching 

2
カスタムキャッシュを実装するためのベストプラクティス
あらゆる種類のエンティティのすべてのインスタンスに対して、次のような名前のキャッシュを多数生成します。 [module_name]__[entity_type]__[entity_id]__[string_depending_on_where_the_cache_came_from] エンティティが更新されるたびに、関連するエンティティタイプとIDで始まるすべてのキャッシュを削除します。 これらのキャッシュを保存/消去するにはどうすればよいですか? 現在はcache_set()だけですが、関連するすべてのキャッシュの名前がわからないため、クリアしたいときに問題が発生します。db_delete()を使用してキャッシュエントリを削除しても安全ですか?
17 7  caching 

2
すべてがdrupalページの実行時間に寄与するものは何ですか?
私は、memcacheを使用して、数と合計実行時間(3秒から230ミリ秒)の両方でクエリの数を減らすことができましたが、ページ実行時間は私を避けています開発によって出力された値を見て)私の理解は、ページ実行時間= phpの実行にかかる時間ですので、APCをインストールし、キャッシュされているphp opcodeとAPCコントロールパネルでヒットを示す統計を見ることができます(APCに付属のapc.php)ページの実行時間は短縮されません。だから、私の質問は2つあると思う: すべてがページ実行時間に貢献します(より遅くなります)。phpを実行するのにちょうど時間がかかりますか? ページの実行時間を短縮するには、どのようなアプローチをとるべきですか。APCを試しましたが、あまり役に立ちません このサイトで使用されているPSのモジュール数は膨大な数(168)ですが、現時点ではそのような推奨事項を立てる立場にはありません。 編集:ローカルインスタンスで実行されたxhprofの出力(mikeytownが推奨)、これはおかしいようです。後の結果はスラッシングによるものだと思いますか?同じURLに対するdiffの実行には大きな違いがあり、リソースの使用量が多すぎます。また、なぜ今日からではない値を示しているのか分かりません:| (このラップトップにxhprofをインストールしました)

3
ページ実行時間を短縮する最適なAPC設定
Drupal 7、apcにphp-fpm、ワニスと512 MB RAMの背後にapacheがあります。 develモジュールでページの実行時間を測定します。 データベースのクエリ時間は、ページの実行時間である854ミリ秒に比べて短い(62ミリ秒)です。これは、PHPとAPCの設定に問題があることを意味します。 私の現在の設定はただ apc.shm_size = 64 apc.stat=1 どうすれば改善できますか? 上記の構成を考慮した場合、Drupalの最適な設定は何ですか? ありがとう
16 7  performance  caching 

9
キャッシュのクリアをフックする方法はありますか?
大きなキャッシュを備えた大きな教育機関のウェブサイトの場合、ユーザーがキャッシュ生成にアクセスできないように、できるだけ早くキャッ​​シュを生成したい... 私はいくつかの機能を実行し、重要なページを要求することでそれを行うcronセットをすべて持っていますが、私が探しているのはキャッシュがクリアされたときを知る方法、できればフックなので、これを起動できます生成関数。 何か案が ?
16 7  hooks  caching 

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