VPSで7つの異なるストアフロントを管理するためにMagentoをセットアップしました。各ストアフロントには一意のIPがありますが、もちろん同じデータベースを共有していますが、一部のサイトには一部の製品のみがあります。約1週間前、店先の1つが劇的に遅くなりました。私は10秒以上のロード時間を話している。奇妙なことに、他のすべてのサイトは約4秒でまだうまくいっていました。しかし、定期的に、それらのパフォーマンスも低下します。私のホストは、サーバーに対して何もしていないと言って、いくつかの問題を修正しましたが、何が起こっているのかを特定することさえできません。ログのクリーニングの間隔を短縮しました(必要ではないと思いますが)。100を超える静的ページがあり、数またはリダイレクトとブロックされたIPのために、htaccessがかなり大きい(215k)ことを追加する必要があります。これはMagentoの問題であり、サーバーの問題ではないと思います。しかし、なぜそれがこの1つの店先だけなのか理解できません。これは他の誰かに起こったことがありますか?それとも私が見落としているものはありますか?
1 に答える
犯人を突き止めるには、プロファイリングを行う必要があります。Magento には、すぐに使用できるいくつかのオプションも用意されています。
まず、System > Configuration > Developerに移動し、現在のパブリック IP を Developer Client Restriction Allowed IP に追加します。
次に、問題のストアのストア ビュー スコープに切り替え、デバッグ セクションでプロファイラーの表示をオンにします。
次に、プロファイラーがデータを収集できるようにする必要があります。これにより、サイト (すべてのストア) がさらに遅くなりますが、修正に必要なデータが提供されるため、この一時的なトレードオフは価値があると考えられます。
Magento には 2 つのプロファイラーが統合されています。1 つは PHP コード用、もう 1 つは DB SQL クエリ用です。
PHP プロファイラーMagento ルート ディレクトリにあるindex.php
ファイルを
開き、呼び出し行の前にあるコメント文字を削除します。
Varien_Profiler::enable();
その呼び出しを有効にした後にページをリロードすると、各ページの下部にプロファイラー タイマーの長いリストが表示され、費やされた時間と問題の各プロファイラー セクションへの呼び出しの数が示されます。
DB Profiler
ファイルapp/etc/local.xml<profiler>
を開き、ノードを接続構成に追加します。
<config>
<global>
<resources>
<default_setup>
<connection>
<host><![CDATA[localhost]]></host>
<username><![CDATA[xxxx]]></username>
<password><![CDATA[xxx]]></password>
<dbname><![CDATA[xxx]]></dbname>
<active>1</active>
<!-- This is the line you need to add: -->
<profiler>true</profiler>
</connection>
</default_setup>
</resources>
</global>
</config>
構成キャッシュをフラッシュした後、ページの下部に、いくつかの DB クエリ統計と、そのページ リクエスト中に最も遅いクエリも表示されます。
これにより、ストアの速度を低下させている原因がわかり、それを修正する方法についてのデータが得られることを願っています。終了したら、コード プロファイラー、SQL プロファイラー、およびプロファイラー出力をオフ
に
することを忘れないでください。出力のみをオンにするだけでは、プロファイラーが喜んでデータを収集し、Web サイト全体の速度が低下します。
編集: プロファイラーによって収集されたデータは、たとえば、並べ替え可能なスプレッドシートを作成したり、カスタム タイマーを追加したりするために使用できます。これは役に立ちますが、この投稿の範囲を超えています。Magento に精通している開発者は、このようなカスタム モジュールを自分で作成しても問題ありません。