3

誰が私を助けることができます。

私は、magento 1.6.2.0 で Web ショップを運営しています。Apache 2 を搭載した VPS サーバー。APC と memcache、ワニス キャッシュ、および fooman speedster を実行しています。

メインページの読み込み時間は許容範囲内です...しかし、カテゴリページに移動すると、はるかに時間がかかります...

しかし、必要な待機時間は、html ページの読み込みを待機することで消費されます... スクリーンショットを参照してください: ここに画像の説明を入力

読み込み時間は現在約 2 ~ 5 秒ですが、サイトが混雑しているときは最大 10 ~ 15 秒かかることがあります。

私がfirebugを見てみると、ロード時間のほとんどの時間が待っていることがわかります...

だから私の質問は、どうすればこれを減らすことができますか?

4

6 に答える 6

2

benmarks と josh pennington は正しい方向に進んでいますが、余分なリクエストは今のところ気を散らすものなので、今のところリクエストの数を減らすように言っている他の人たちを無視してください。

問題は、HTML ページの生成に時間がかかりすぎて、負荷がかかるとさらに悪化することです。

多くの場合、最適化が不十分なクエリや十分なメモリがないため、DB に負荷がかかりすぎていることが原因です。

そのページで実行されるクエリと、メモリ、IO、CPU 使用率などのパフォーマンス プロファイルを確立する必要があります。

VPSのサイズは?また、十分なメモリがあるかどうかも考慮する必要があります。

また、Apacheを実行していますか?もしそうなら、それは何人の労働者を持っていますか。繁忙期には十分な数のワーカーがなく、十分に迅速に処理できない可能性があるため、繁忙期にはワーカーが利用可能になるのを待っている間にいくつかのリクエストがキューに入れられます。

于 2012-04-28T16:19:37.807 に答える
1

問題はおそらくデータに関連しています。製品のないカテゴリを作成して参照し、応答時間を記録します。これは、カテゴリデータの問題かどうかを示します。プロファイラーを使用して、犯人を絞り込むことができます。[管理]>[システム]>[構成]>[詳細:開発者]で、開発者制限IPを自分のIPに設定し、プロファイラーを有効にします。次に、index.phpでVarian_Profiler :: enable();のコメントを解除します。

その後、通常の応答本文の後に出力が表示されます。その出力をトレースして、パフォーマンスの低い領域を中央のどこかに見つけることができます。

于 2012-04-28T12:47:13.020 に答える
1

私が最初にすることは、Magento のホワイトペーパーを見ることです。最高のパフォーマンスを得るために PHP、Apache、および MySQL を微調整する方法について、多くの優れたヒントが含まれています。

http://www.magentocommerce.com/whitepaper

MySQL サーバーを Apache サーバーから分離することで、大きな違いが生まれる可能性があると言えます。Magento は Innodb を非常に頻繁に使用しますが、これは、DB サーバーが許可されている限り多くのメモリを使用するように最適化されていない場合、非常に遅く見えることがあります。

于 2012-04-28T13:30:47.307 に答える
1

実現できる非常に優れた改善の 1 つは、Apache を Nginx に置き換えることです。Nginx を使用すると、速度と安定性が大幅に向上することがわかりました。テーブルを最適化し、innodb_memory_pool_size を増やし、max_heap_table_size と tmp_table_size を増やすように MYSQL チューナーが教えてくれることがあります。余裕がある場合は、サーバーを 4GB に増やして、MySQL と PHP により多くのメモリを割り当ててください。Gzip は最初のバイトまでの時間にも影響し、プロセッサが 1 つしかない場合は少し遅くなる可能性があります。キャッシュの代替/追加として Cloudflare を調査できます。最後に、カタログ ページには多くの画像が含まれる傾向があります。それらが最適化されていることを確認し (ImageOptim を使用)、可能であれば gif を png に変更します。まだまだやるべきことはたくさんありますが、まずはこれから始めましょう。

于 2013-02-17T06:09:22.113 に答える
0

サーバーに負荷がかかる非常に複雑な階層化されたナビゲーション設定があります。

経験から、スペシャリストのMagento Webホストに移行すると、世界が変わる可能性があります...それは私に起こりました. 企業について言及する必要があるかどうかはわからないので、誰かがそれをしてもいいと言わない限り、私のものについては言及しませんが、Magento ベンチマークの Google 検索を開始する必要があります。

3 サーバー アプローチを使用すると、大きな違いが生じます。

于 2012-04-30T08:56:14.593 に答える
0

ページの読み込み後にすべての画像 (高解像度) を読み込む JavaScript コードを実装してみてください。ページの読み込み後に ajax 呼び出しをスローして画像を取得してみてください

function init() {
...function to call all the images threw ajax
}
window.onload = init;

画像をロードする時間を最小限に抑えるために、以下のコードを試してみました。すべての画像を共通の div 名で配置し、それらの可視性を非表示に設定します...

$(document).ready(function() {
    $("#img").css('visibility','visible') //img is div for all the images on the webpage 
});

しかし、ajax呼び出しは、画像を取得するためのルックアンドフィールを提供してくれます。

于 2012-04-28T11:58:25.730 に答える