web-dev-qa-db-ja.com

Magentoがなぜこんなに遅いのですか?

通常、Magentoは非常に遅いですか?

これは初めての経験であり、管理パネルは変更をロードして保存するのに時間がかかります。これは、テストデータを使用したデフォルトのインストールです。

ホストされているサーバーは、他の非マゼンタサイトを超高速で提供します。 Magentoが使用するPHPコードの速度が遅いのはどうしてですか。それを修正するにはどうすればよいですか。

134
mr-euro

私はパフォーマンスのためにMagentoを最適化することにのみ関わってきましたが、システムが非常に遅い理由はいくつかあります

  1. Magentoの一部は、MySQL上に実装されたEAVデータベースシステムを使用しています。つまり、単一の「もの」を照会することは、多くの場合、複数の行を照会することを意味します

  2. メモリ内に巨大なXMLツリーを構築し、それらの同じツリーに情報を「照会」することを伴う多くの事柄が背後にあります(アプリケーション構成、システム構成、レイアウト構成など)。これには、メモリ(ツリーの保存)とCPU(ツリーの解析)の両方が必要です。これらの一部(特にレイアウトツリー)は巨大です。また、キャッシュがオンでない限り、これらのツリーはディスク上のファイルからおよび各リクエストでで構築されます。

  3. Magentoはその構成システムを使用して、クラスをオーバーライドできます。これは強力な機能ですが、モデル、ヘルパー、またはコントローラーがインスタンス化されるたびに、追加のPHP命令を実行して、元のクラスファイルまたはオーバーライドクラスファイルが必要かどうかを判断する必要があります。これは合計します。

  4. レイアウトシステムに加えて、Magentoのテンプレートシステムには多くの再帰的なレンダリングが含まれます。これは合計します。

一般的に、Magentoのエンジニアは何よりもまず、可能な限り最も柔軟でカスタマイズ可能なシステムを構築し、後でパフォーマンスを心配するという任務を負っていました。

パフォーマンスを向上させるために最初にできることは、キャッシュをオンにすることです(システム->キャッシュ管理)。これにより、MagentoがさまざまなXMLツリーを構築している間に発生するCPU /ディスクブロッキングの一部が緩和されます。

2番目に行うことは、ホストおよび運用チームを確保する Magentoのパフォーマンスチューニングの経験があることです。月額7ドルのプランに頼ってあなたに会いに行くのであれば、それで幸運を祈ります。

179
Alan Storm

キャッシングに関するAlan Stormの推奨事項に加えて、キャッシングに関連して検討することを特にお勧めする2つのことがあります。

-キャッシュがディスクではなくmemcachedにあることを確認してください。

Magentoのインストールを2〜3回行います。システムに何らかの負荷がかかると、memcachedの実行速度が大幅に向上します。そして、それを変更するのは簡単です(少なくとも他のmagentoのものを行うことに比べて!)

良い出発点はここにあります: http://www.magentocommerce.com/boards/viewthread/12998/P30/ -しかし、memcachedをまったく使用したことがない場合は、一般的なそれに関する情報も。

-テンプレート/ビューのキャッシュを有効にします。

これは良い記事です: http://inchoo.net/ecommerce/magento/magento-block-caching/

Magentoサイトにも良いもの(google magentoブロックキャッシング)がありますが、現時点ではダウンしています。

ブロックキャッシュに2セントを追加するには、/ app/code/localに独自のブロックを作成し、コアブロックを拡張してキャッシュパラメーターを定義し、xxx_Cac​​heという名前を付けて、代わりにこれらのブロックを使用するようにレイアウトを更新することをお勧めしますコアのもの。これにより、magentoをアップグレードするときに、変更が失われたり、システムが壊れたりすることを回避できます。

54
benlumley

まだ見ていない場合は、MagentoとRackspaceが協力して、Magentoのパフォーマンスチューニングに関するホワイトペーパーを作成しました。素晴らしいです。 https://support.rackspace.com/whitepapers/building-secure-scalable-and-highly-available-magento-stores-powered-by-rackspace-solutions/

---編集---

新たに利用可能になった別の優れたリソース(2011年10月)は次のとおりです。 http://www.sessiondigital.com/assets/Uploads/Mag-Perf-WP-final.pdf

(これについてはアラン・ストームに感謝します。)

23
Laizer

管理インターフェイスが非常に遅い理由は、おそらく非常に明白ではない理由もあります。 Magentoには、Mage_AdminNotificationというモジュールがあります。その内線を無効にしてみてください。 magentocommerce.comに新しい更新メッセージを照会するからです。それらのサーバーが遅い場合、管理ページはネットワークの遅延と外部ニュースの読み込みのために待機し、事実上遅くなります。ファイアウォールを介して送信サーバー接続をセキュリティで保護している場合、管理インターフェイスはmagentocommerce.comに到達できないときにタイムアウトを待機するため、これはさらにイライラする可能性があります。

それを無効にするには:[システム]-> [構成]に移動し、一番下までスクロールして[詳細設定]([詳細設定]セクション)を押します。 Mage_AdminNotificationを無効にして保存します!

17
Sam Figueroa

私はMagentoの表面的な経験しかありません。共有グリッドサーバーにインストールしましたが、ページの読み込みは5秒以上かかりました。ひばりで、CMSサイト専用サーバーに最適化してインストールしましたが、非常にきびきびしていました。

私の専用ホスティングは〜10 Joomla!でした。サイトおよび実行中のVBullitinサイト。

私の推測では、共有ホスティングではパフォーマンスが低下するだけです。オーバーサブスクリプションは、Magentoが実行するのに十分なリソースを許可しません。

6
creuzerm

私は会社の管理対象サーバーの最適化にもっと関与していますが、いくつかのヒントがあります。まず、Zendサーバーのコードトレース機能を使用して、コードをより詳しく見ることができます。物が汚れている場所と時期を確認できます。

キャッシュに関するbenlumleyの考慮事項を完全に共有します。私たちがホストするサイトのほとんどは、ブロックキャッシングを有効にしていません。このキャッシュは「想定」ではなく、明示的に呼び出す必要があります。したがって、コードがまだこのメカニズムに参加していない場合は、ぜひ試してみてください。 EEバージョンをお持ちの場合は、獣を最大限に活用するためにフルページを取得できます。

リバースプロキシも大いに役立ちます。静的リソースをキャッシュし、フロントサーバーのPHP解釈スタックへの圧力を大幅に軽減します。

セッションとMagentoキャッシュをRAMディスクに書き込むことを忘れないでください。これにより、間違いなく別のレベルのパフォーマンスが得られます。

ここで言うべきことがまだたくさんありますが、私は時間を使い果たしています。 1.4.1 CEバージョンで適切にコード化され、2x5650 Xeon + 16 GB RAMサーバーで実行され、Rproxyを上部に持つ優れたサイトは、最大50 000のユニークビジターを取得できることを知っておく必要があります。皆にスムーズなページで一日。

6
kameo

ApacheからLiteSpeedに切り替えると、非常に役立ちました。さらに、MySQLの設定の編集、Fooman Speedster(jsファイルとcssファイルを圧縮/結合するモジュール)のインストール、およびAPCのインストール。 Magentoは、エンタープライズ版から最高のパフォーマンスを引き出す方法に関するホワイトペーパーも投稿していますが、他のバージョンにも同様に適用できます。 http://www.magentocommerce.com/whitepaper/

5
Jonathan

Magentoのショッピングカートの動作が遅くなる理由はたくさんありますが、問題を回避してかなり速くするためのさまざまな方法があるという言い訳はありません。 htaccessファイルを変更してGzipを有効にすることは開始です。 fooman speedster拡張機能をインストールすることもできます。使用するサーバーのタイプによって、ストアの速度も決まります。ここでより多くのヒントとより良い説明 http://www.interactone.com/how-to-speed-up-magento/

4
Thomas

また、機能とパフォーマンスの関係もあります。

生のパフォーマンスは、nginx、php-fpm、memcached、apc、および適切に設計されたサーバーを使用して得られます。

Pleentoやmagentoのパフォーマンスなどの機能は、magentoのパフォーマンスクラウドを設計するときにインフラストラクチャ全体を視野に入れることで管理できます。

3
ProContractors

最初にインストールしたとき、ロードに30秒かかっていたページがありました。サーバーがRAMまたはプロセッサで限界に達していないため、どうすればよいかわかりませんでした。 firebugのネットパネルを見ると、1ページあたり約100個のファイルがロードされており、各ファイルの接続には長い時間がかかりました。 fooman speedsterをインストールし、htaccessのgzipの読み込み時間は、サーバー上の他のショッピングカートにあったように、3秒に短縮されました。

3
Scott

データベース設計があまり良くないため、Magentoは非常に遅いです。コードは混乱し、更新と最適化が非常に困難です。したがって、すべての最適化はコードではなくキャッシュを介して行われます。

一方。多くのツールを備えたウェブショップです。したがって、柔軟なWebショップが必要な場合は、非常に強力なサーバーを購入するだけで大​​丈夫です。

3
developer