一貫性のないページ読み込み時間


11

私は大規模なmagentoプロジェクトを完了するのに非常に近く、magentoの速度を向上させることに焦点を当てています。序文のように、私はこの大規模なプロジェクトを社内で行い、状況を把握しながら、フロントエンドの開発者を務めています。

2GBのRAMを備えたMedia Temple専用仮想サーバーに開発マジェントがあります。私は最近、600もの製品と、各製品に約25の異なる属性(合計で約300の固有の属性)と、おそらく50のカテゴリを持っていました。15秒前後の読み込み速度のトラブルシューティングを行うために、すべて削除しました。

しかし、私の読み込み時間はまだ長く、一貫性がありません。Firebugが応答について500ミリ秒を報告するようにホームページをリロードしました。すぐにリロードすると、9秒以上報告されます。これはサーバーの問題ですか、それともMagento自体の問題ですか?そのようなものをテストするにはどうすればよいですか?

回答:


11

まず、PHPのレンダリング時間だけでなく、実際のページの読み込み時間でも、何をテストするかを決定する必要があります。

どちらのシナリオでも、インターネット接続自体がボトルネックまたはジッターの原因になる可能性があるため、firebugの使用は信頼できません。

PHPレンダリング時間

PHPのレンダリング時間が改善または変更されたかどうかを純粋に確認する場合は、Magentoプロファイラーからの出力を使用するのが最も正確な方法です。

index.php、コメントを外します

Varien_Profiler::enable();

次に

管理者>システム>構成>開発者

プロファイラーが有効になっていることを確認します。

すべてのページ(フロントエンドとバックエンド)の下部に表形式の出力が表示され、Mage::run()開始時点から測定されたページの読み込み時間が分類されます。最初の行は、PHPの合計レンダリング時間(Mage内)を示します。

これは、PHPの変更がページの読み込み時間に影響を与えるかどうかを確認するうえで最も正確な数値になるでしょう。言うまでもなく、パフォーマンスのボトルネックを特定します。

PHP Webサーバーのレンダリング時間

次のタイプのテストは、Webサーバー自体のオーバーヘッドを考慮することです(ラストマイル接続ではありません)。したがって、このテストが正確であり、「インターネット」自体の影響を受けないようにするには、Webサーバー自体で実行する必要があります。

独自のユーティリティを使用しますmage-perftest(詳細については、こちらを参照してください)-純粋なPHPのレンダリング時間、実際のページの読み込み時間、さらには同時実行性テストをテストできます。

PHP Webサーバーのレンダリング時間のみをテストするには、次のようにします(URLを適宜置き換えます)

./mage-perftest -u me-s1.sonassihosting.com -b

このテストは、ページの読み込み時間の内訳を提供します(JS / CSS / Imagesを無視して、ページのPHP要素のみ)。出力は次のようになります。

Test Summary
============
Total files:              1
Total downloaded:         4K
Avg. page weight:         4.00K

Total time:               0.035s
Min response:             0.035s
Max response:             0.035s
Avg. page response:       0.03s

Concurrency/Repeats:      1
Transactions/s            28.57
Test URL:                 me-s1.sonassihosting.com
Success rate:             1/1 (100.00%)

実際のWebサーバーのレンダリング時間

最後のタイプのテストは、ページ全体(PHP +静的コンテンツ)をダウンロードするのにかかる時間です。ここでも、mage-perftestこれを行うために使用できます。

./mage-perftest -u me-s1.sonassihosting.com

ペストのようなオンラインテストサービスを回避する

GTMetrix、Pingdomなどのオンライン速度テストツールがいくつかあります。これらは、きめ細かいプロファイリングの正確な結果を提供するものではありません。

それらは外部ネットワーク接続のテストに関してはその地位を持っていますが、実際のP​​HPパフォーマンスをチェックする手段としてはまったく役に立ちません。これについては、サーバー上/ローカルのテストに固執してください。

その他の注意事項

リモートテストとその回避理由についての記事を書きました 。http://www.sonassi.com/knowledge-base/magento-kb/why-siege-isnt-an-accurate-test-tool-for-magento-パフォーマンス/

VPSでMagentoを実行するのは悪い考えです。他の人は同意しないかもしれませんが、それはいくつかの理由でMagentoストアに適した環境ではありません。


Perftestは素晴らしいです-Githubにあるのでフォークできますか?
philwinkle 2013年

私はperftestを実行するトラブルがあったが、プロファイラは、いくつかの興味深い情報を提供:mage::dispatch::routers_matchmage::dispatch::controller::action::predispatchのように見える、私は必ず解決策が...検索がはるかにそこまで来ていないされているものではないんだけれども、ボトルネック。
andyjv 2013年

一度に開くページが多いほど、magentoがに費やす時間が長くなりmage::dispatch::routers_match、28秒のページ読み込みで22秒になります。同じ負荷で、mage::dispatch::controller::action::predispatch22秒、CORE::create_object_of::Mage_Core_Model_Session21秒、Mage_Core_Model_Session_Abstract_Varien::start/start21秒にもあります。いくつかの親子関係が起こっていると確信していますrouters_matchが、最も長いので、それが他の20秒関数の親であると想定しています
andyjv

プロファイラーの出力は階層的に包括的です。つまり。その関数内で実行されるすべての包括的合計を示しています。したがってMage、すべてRouters_Matchが含まれているため、最も時間がかかります。基本的には、それが呼び出す次の関数であり、他のすべてが生成されます。それはボトルネックではありませんが、それが呼び出しているものです(さらに下を見てください)。プロファイリングを行う場合は、複数のウィンドウを開かないでください。これは何も達成しません。
ベンレッサーニ-ソナッシ2013年

その下Routers_MatchにはDISPATCH EVENT:controller_action_predispatch、21.0710と21.0565にありOBSERVER: logます
andyjv

3

これはおそらくサーバーの問題であり、Magentoの問題ではありません。使用するサーバーの種類によっては、読み込み時間が1秒未満になる場合があります。ここでより高度なテストを実行することもできます:http : //www.magespeedtest.com/。また、他のサーバープロバイダーからの速度も確認できます。

また、http: //www.webpagetest.org/からのウォーターフォールレポートを使用して、「遅さ」がどこから来ているのかを正確に確認することをお勧めします。速度を向上させるのに役立つ(CSS、JS、画像ファイルをダウンロードするのにかかる時間などの)部分に分割します。

そうは言っても、Magentoのコード、CSS、JS、画像、コンテンツを最大限に最適化しても、サーバーが常に最大の問題となります。Magentoホスティングプロバイダーを使用することをお勧めします。Magentoを支援するためにサーバーをさらに微調整しているためです。個人的には、Nexcessを使用していますが、Sonassi HostingとPeer1について良いことを聞いたことがあります。

速度を改善する方法についての記事がいくつかあります。MagentoのWebサイトの白いページを読むことをお勧めします。

エンタープライズ向けですが、多くのアドバイスを利用できます。また、Magentoを最新の状態に保つようにしてください。現在のリリースから2つ以上のバージョンに該当しないでください。


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