0

VPSで7つの異なるストアフロントを管理するためにMagentoをセットアップしました。各ストアフロントには一意のIPがありますが、もちろん同じデータベースを共有していますが、一部のサイトには一部の製品のみがあります。約1週間前、店先の1つが劇的に遅くなりました。私は10秒以上のロード時間を話している。奇妙なことに、他のすべてのサイトは約4秒でまだうまくいっていました。しかし、定期的に、それらのパフォーマンスも低下します。私のホストは、サーバーに対して何もしていないと言って、いくつかの問題を修正しましたが、何が起こっているのかを特定することさえできません。ログのクリーニングの間隔を短縮しました(必要ではないと思いますが)。100を超える静的ページがあり、数またはリダイレクトとブロックされたIPのために、htaccessがかなり大きい(215k)ことを追加する必要があります。これはMagentoの問題であり、サーバーの問題ではないと思います。しかし、なぜそれがこの1つの店先だけなのか理解できません。これは他の誰かに起こったことがありますか?それとも私が見落としているものはありますか?

4

1 に答える 1

6

犯人を突き止めるには、プロファイリングを行う必要があります。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 に精通している開発者は、このようなカスタム モジュールを自分で作成しても問題ありません。

于 2012-06-21T06:52:07.123 に答える