ウェブサイトの表示を高速化する方法

ウェブサイトの表示を高速化する方法

専用サーバー上にウェブサイトがあります。サーバー設定は次のとおりです。

  • 純正Intel、Intel (R) Core (TM) i5-2400[メールアドレス]
  • バージョン Plesk v10.3.0_build1012110629.18 os_Ubuntu 10.04
  • OS Linux 2.6.38.2-xxxx-std-ipv6-64
  • メモリ合計 16GB

このウェブサイト (http://www.bobcat.pro) は、18,000 のカテゴリと 300,000 の製品で構成される電子商取引サイトです。すべて PHP5 / MySQL で実行されています。

閲覧時にわかる通り、ページの表示が5秒(またはそれ以上)で行われ、長すぎます。弊社サーバーのインストールと互換性のある表示を短縮する方法を探しています。

私は varnish を使用しましたが、再試行するには問題が多すぎました。何をお勧めしますか? Apache 2 用のモジュール page_speed google は良い解決策でしょうか?

答え1

Varnish はおそらく適切な解決策です。ただし、他の方法も試すことができます。

次のいずれかを使用してみてください:

  1. 電子計算機
  2. メムキャッシュ

これらのソリューションにより、Apache プロセスのバックエンド アクセスが高速化され、ページのデータベース アクセスのオーバーヘッドが排除されます。

ただし、varnish の実装中に直面した問題について質問を投稿することをお勧めします。varnish は通常、ほとんどの人にとってうまく機能するため、それらの問題は解決される可能性があります。

答え2

電子商取引アプリケーションのベンダーが最も適切な回答をしてくれるでしょう。

一見すると、HTTP 応答に何らかのキャッシュ制御ヘッダー (「Expires」ヘッダーまたは「Etag」) が必要なように見えます。ただし、必ずしもこれらをあらゆる場所に追加する必要はありません。そうしないと、ユーザーがキャッシュにアクセスするのではなく、実際に新しいビューを必要としている場所で何かが壊れる可能性があります。

実際、電子商取引アプリケーションがこれらのヘッダーをすぐに調整しないのは、ある意味犯罪的です (キャッシュが「古い」かどうかは、アプリケーションが最もよく知っていることです)。私は別のものを探すつもりです。

また、1 つのリクエストに必要な時間から判断すると、そのアプリケーションは、あなたが課しているカテゴリや製品の数に対応していないように思われます。おそらく、テーブル スキャン (大量のディスク I/O) を伴う SQL クエリを実行するか、データベース メモリ内の非常に大きな作業セットを伴う複雑なクエリ (300,000 件のレコードのソートなど) を実行するのでしょう。MySQL データベースのインデックスは、これらの問題を解決するのに役立つ場合がありますが、アプリケーションのインストール手順でインデックスを追加したほうがよいでしょう。なぜなら、データベースを最適化する前に、まずアプリケーションが発行する可能性のあるクエリを知る必要があるからです。これは、仕事に適さない e コマース アプリケーションを入手したことを示すもう 1 つの兆候です。

関連情報