Magentoは通常とてもひどく遅いですか?
これは私の初めての体験で、管理パネルは単に変更をロードして保存するのに時間がかかります。これは、テストデータを含むデフォルトのインストールです。
それがホストされているサーバーは、他の非Magentoサイトに超高速でサービスを提供します。Magentoが使用するPHPコードの処理速度を遅くする原因は何ですか?それを修正するために何ができますか?
Magentoは通常とてもひどく遅いですか?
これは私の初めての体験で、管理パネルは単に変更をロードして保存するのに時間がかかります。これは、テストデータを含むデフォルトのインストールです。
それがホストされているサーバーは、他の非Magentoサイトに超高速でサービスを提供します。Magentoが使用するPHPコードの処理速度を遅くする原因は何ですか?それを修正するために何ができますか?
回答:
私は、Magentoのパフォーマンスの最適化に関与しているだけですが、システムが非常に遅い理由はいくつかあります
Magentoの一部は、MySQLの上に実装されたEAVデータベースシステムを使用します。これは、単一の「もの」を照会することは、複数の行を照会することを意味することが多いことを意味します
メモリ内に巨大なXMLツリーを構築し、それらの同じツリーに情報を「クエリ」することを含む、背後にある多くのこと(アプリケーション構成、システム構成、レイアウト構成など)があります。これには、メモリ(ツリーの保存)とCPU(ツリーの解析)の両方が必要です。これらのいくつか(特にレイアウトツリー)は巨大です。また、キャッシングがオンになっていない限り、これらのツリーはディスク上のファイルと各リクエストで構築されます。
Magentoはその構成システムを使用して、クラスをオーバーライドできます。これは強力な機能ですが、モデル、ヘルパー、またはコントローラーがインスタンス化されるときは常に、元のクラスファイルまたはオーバーライドクラスファイルが必要かどうかを判断するために、追加のPHP命令を実行する必要があります。これは追加されます。
レイアウトシステムの他に、Magentoのテンプレートシステムには多くの再帰的なレンダリングが含まれます。これは追加されます。
一般に、Magentoのエンジニアは、何よりもまず、可能な限り最も柔軟でカスタマイズ可能なシステムを構築し、後でパフォーマンスを心配するという任務を負っていました。
パフォーマンスを向上させるために最初にできることは、キャッシュをオンにすることです([システム]-> [キャッシュ管理])。これにより、MagentoがさまざまなXMLツリーを構築している間に発生するCPU /ディスクブロッキングの一部が軽減されます。
次に行うことは、ホストと運用チームがMagentoのパフォーマンスチューニングの経験を持っていることを確認することです。月額$ 7のプランを利用している場合は、それで頑張ってください。
キャッシングに関するAlan Stormの推奨に加えて、キャッシングに関連して調査することを特にお勧めしたいことが2つあります。
-キャッシュがディスクではなくmemcachedにあることを確認してください。
私は2つのmagentoインストールを管理します。システムに何らかの負荷がかかると、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_Cacheという名前を付けてから、代わりにこれらのブロックを使用するようにレイアウトを更新することをお勧めしますコアのものの。これにより、magentoをアップグレードするときに、変更内容が失われたり、システムが破損したりするのを回避できます。
MagentoとRackspaceが協力して、Magentoのパフォーマンスチューニングに関するホワイトペーパーを作成しました。それは素晴らしいです。 https://support.rackspace.com/whitepapers/building-secure-scalable-and-highly-available-magento-stores-powered-by-rackspace-solutions/
---編集---
新たに利用可能になったもう1つの優れたリソース(2011年10月)は次のとおりです。http: //www.sessiondigital.com/assets/Uploads/Mag-Perf-WP-final.pdf
(これについてはAlan Stormに感謝します。)
また、管理インターフェースが非常に遅い理由は、非常に明白ではない理由かもしれません。MagentoにはMage_AdminNotificationという名前のモジュールがあります。そのextを無効にしてみてください。それは、新しい更新メッセージをmagentocommerce.comにクエリするためです。それらのサーバーが遅い場合、管理ページは待機し、ネットワークラグと外部ニュースの読み込みのために実質的に遅くなります。ファイアウォールを介して送信サーバー接続を保護している場合、管理インターフェースはmagentocommerce.comに到達できないときにタイムアウトを待機するため、これはさらに苛立たしい場合があります。
これを無効にするには、[システム]-> [構成]に移動し、一番下までスクロールして、[詳細]セクションの[詳細]をクリックします。無効にMage_AdminNotification
して保存してください!
Mage_AdminNotification
ます。
私は会社での管理対象サーバーの最適化に深く関わっていますが、いくつかのヒントを紹介します。まず、Zendサーバーのコード追跡機能を使用して、コードをさらに詳しく見ることができます。汚れがいつどこで発生するかを確認できます。
キャッシュに関するベンラムリーの考慮事項を完全に共有します。私たちがホストするほとんどのサイトでは、ブロックキャッシュを有効にすることすらできません。このキャッシュは明示的に呼び出される必要があり、「想定」されません。したがって、コードがまだこのメカニズムに参加していない場合は、ぜひ試してみたいものです。EEバージョンをお持ちの場合は、全ページを表示して、最高の獣を手に入れることができます。
リバースプロキシも役立ちます。静的リソースをキャッシュし、フロントサーバーのphp解釈スタックへの圧力を大幅に軽減します。
セッションとMagentoキャッシュをRAMディスクに書き込むことを忘れないでください。これにより、確実に別のレベルのパフォーマンスが実現します。
ここで言うことはまだたくさんありますが、時間が足りません。2x5650 Xeon + 16 GB RAMサーバー上で実行され、Rproxyを上に配置した1.4.1 CEバージョンで適切にコーディングされた優れたサイトは、1日あたり最大50 000のユニークビジターを獲得でき、スムーズなページで誰にでもアクセスできることを知っておく必要があります。 。
ApacheからLiteSpeedへの切り替えは私たちに大いに役立ちました。それに加えて:MySQLの設定の編集、Fooman Speedster(jsファイルとcssファイルを圧縮/結合するモジュール)のインストール、およびAPCのインストール。Magentoは、エンタープライズエディションから最高のパフォーマンスを引き出す方法に関するホワイトペーパーも掲載していますが、他のバージョンにも同様に適用できます。http://www.magentocommerce.com/whitepaper/
Magentoのショッピングカートの動作が遅くなる理由はたくさんありますが、問題を回避してかなり速くするためのさまざまな方法があるという言い訳はありません。htaccessファイルを変更してGzipを有効にすることから始めます。foomanスピードスター拡張機能をインストールすることもできます。使用するサーバーのタイプも、ストアの速度を決定します。より多くのヒントとより良い説明はこちらhttp://www.interactone.com/how-to-speed-up-magento/
また、機能性とパフォーマンスの関係にもなります。
生のパフォーマンスは、nginx、php-fpm、memcached、apc、および適切に設計されたサーバーを使用して得られます。
pleskやmagentoのパフォーマンスなどの機能は、magentoのパフォーマンスクラウドを設計するときに全体のインフラストラクチャを視野に入れて管理できます。