web-dev-qa-db-ja.com

Apacheの高速化とPHP

PHPを実行しているEC2サーバー上のApacheの負荷を減らすために使用できるキャッシュ用の優れたモジュールまたはシステムは何ですか?なぜそれらを選択するのですか?

5
tgriesser

速度を上げるための一般的な業界標準の手法をいくつか紹介します。正確な構成に応じて、それらを試すことができます。

Memcached

Memcachedは汎用の分散メモリキャッシュシステムであり、データとオブジェクトをRAMにキャッシュして、外部データソース(データベースまたはAPIとして)を読み取る必要があります。

http://memcached.org/

ワニスキャッシュ

Varnishは、コンテンツの多い動的Webサイト用に設計されたHTTPアクセラレータです。クライアント側のキャッシュとして誕生したSquidや主にOriginサーバーであるApacheなどの他のHTTPアクセラレータとは対照的に、VarnishはHTTPアクセラレータとしてゼロから設計されました。

http://www.varnish-cache.org/

Mod_pagespeed

Page Speedは、待ち時間を改善するためにWebサイトに加えることができる改善点を特定するツールおよびライブラリです。 mod_pagespeedは、Apacheサーバーでのこれらのルールの適用を自動化します。 HTML、CSS、JavaScript、および画像はWeb配信プロセス中に動的に変更されるため、Webサイトの保守方法を変更することなく、PageSpeedが推奨するベストプラクティスを使用できます。

http://googlewebmastercentral.blogspot.com/2010/11/make-your-websites-run-faster.html

HBase

HBaseは、GoogleのBigTableをモデルにしたオープンソースの非リレーショナル分散データベースであり、Javaで記述されています。これは、Apache Software FoundationのHadoopプロジェクトの一部として開発され、HDFS(Hadoop Distributed Filesystem)上で実行され、HadoopにBigTableのような機能を提供します。つまり、大量のスパースデータを格納するフォールトトレラントな方法を提供します。

http://hbase.Apache.org/

スロースタートでのチート

スロースタートは、多くのインターネットアプリケーションで使用されるデータ転送プロトコルであるTCPで使用される輻輳制御戦略の一部です。スロースタートは、他のアルゴリズムと組み合わせて使用​​され、ネットワークが送信できるよりも多くのデータを送信しないようにします。つまり、ネットワークの輻輳を回避します。

http://blog.benstrong.com/2010/11/google-and-Microsoft-cheat-on-slow.html

5
cwd

cwdの答えは素晴らしいです。処理がPHPを多用する場合は、PHPオペコードキャッシャー(APC、eaccelerator、xcache)を追加するだけです。

3
Joris

mod_pagespeed提案のcwdに+1。

負荷を減らすことが目標である場合Apache上そしてApacheがHTTPリクエストを受信する最前線のデーモンであると仮定すると(つまり、ユーザーとApacheの間にキャッシュがない)、多くの注意を払う必要がありますクライアント側の最適化。具体的には、ページの重みを減らし、ページの読み込みに必要なリクエストの数を減らします。 mod_pagespeedはこれらの多くをその場で実行しますが、Apacheモジュールであるため、これらの最適化を実行するためだけに少しのApache負荷が発生します。

Apache構成を詳細に調整する必要なしに、有効期限ヘッダーなどを使用してクライアント側のキャッシュを最大化することができます。これは利点です。他のいくつかの最適化(CSSファイルとJavascriptファイルを組み合わせたりバンドルしてページの構築に必要なそれぞれの数を減らしたり、CSS画像スピリットを使用してページごとに読み込まれる画像の数を減らしたり)を自分で行って、 mod_pagespeedにロードします。

GoogleのPageSpeedツール( mod_pagespeedページ からリンク)および/または Yslow拡張子Firebug Firefoxを見ることができますプラグインを使用して、ページに適したクライアント側の最適化を見つけます。

1
pjmorse