EC-CUBE2.11系のパフォーマンスを185%あげる4つの手法

まずはデフォルトの場合のベンチマークです
PHP5.2.17 MySQL5.5.9 MAMP環境です

同時接続数が 10で、リクエスト数 100 になるまで、http://localhost:8888/ にアクセスした結果21.855秒かかりました
とても重いですね

PHP5.3.10を使います

14.556秒、150%改善しましたがまだまだ遅いですね

apcを有効にします

EC-CUBEはAPCに対応していないので、画面下にこんなエラーメッセージが出てしまいます

これを出ないようにするために修正します

SC_Helper_Session_Exに追記します

参考:EC-CUBE2.11.1でAPCの動作を確認してみる | のぶろぐ

エラーメッセージが出なくなったのでベンチマークをとります

12.174秒、あまりかわりませんが最初の状態より179%改善しました

SESSIONのストレージにデータベースを使うのをやめる

EC-CUBEはWEBサーバーを分散させることを前提に作られているためセッションをDBに持たせていますがこれがDBへの負荷となるためfileでの処理に変えてベンチをとってみます

11.805秒、画面の表示速度にはあまり影響していないようですが、とりあえずこれで185%の改善。

Cache_Liteを導入する

PEARのライブラリであるCache_Liteを導入し、クエリをキャッシュします
こちらもMySQLのアクセスを減らすことが目的になります

結果はなぜか18.374秒。悪化してしまいました。
データ量があまりないからなのか、キャッシュを見に行く方がパフォーマンスがでないという結果に

というわけで

結果185%のパフォーマンス改善となりました
MySQLのチューニングをすれば、さらに改善も見込めると思うのでそれはまた別の機会にでも

[PR] cocokamo EC-CUBEで出来たEC-CUBEモールです。登録無料です!

スポンサーリンク

シェアする

フォローする

コメント

  1. Tao より:

    APCでクエリをキャッシュした方が速いと思います。

    • のぶ より:

      そんな使い方も出来るんですね〜
      ただapc_delete(‘foo’);しか出来ないとキャッシュクリアするのが厳しくないですか?

      cache_liteだとキャッシュクリアがもう少しだけ柔軟に出来るのでその点は便利かもしれません

コメントを残す

トップへ戻る