memcached

上記のジャンルにあてはまらない話題、雑談など
アバター
maixx

memcached

投稿記事by maixx » 2008/5/18 23:04

はじめまして。いつもこの掲示板にお世話になっております。

ピークとOffピークのload averageの差が激しいサイトを運営しています。
ピーク時はload averageが140(1min)を超えることもありますが、
Offピーク時は0.1と投資しづらい状況の中、この掲示板で勉強しながら、mysqlのチューニングなど、ちょこまか小技を使って徐々に軽量化しております。

クエリキャッシュなどいろいろやってみてはいるのですが、いかんせんzencartの1ページ表示するためのクエリ数が多く、mysqlの負荷が上がりっぱなしです。

なんとかクエリ数を減らせないかと、memcacheを導入し、とりあえず価格表示の関数に使ってみたところ、Topページだけでも300近いクエリを減らすことができました。

機能をあまり犠牲にせず、もっと効果的な使い方など、もしご存知の方がいらっしゃいましたら、教えていただけませんでしょうか。

環境:zen-cart-v1.2.0-l10n-jp-6、MySQL4.1, PHP4.2, memcached2.0.2
アバター
志田
記事: 526
登録日時: 2005/5/15 14:14
お住まい: 東京都
連絡を取る:

投稿記事by 志田 » 2008/5/19 18:03

いやー、まったくmemcachedは経験がないので、非常に参考になりました!

すみません、それだけなんですが。。
アークウェブ http:/www.ark-web.jp
きものリメイク comachi http://comachi-kimono.jp
アバター
kino
記事: 893
登録日時: 2005/5/15 19:39
お住まい: 京都
連絡を取る:

投稿記事by kino » 2008/5/19 18:31

木下です。


これまでも、何度か有償でのサイトの高速化を行ってきた経験からすると・・・

私は pecl で APCを導入することが多いです。

それ以外は apache の設定で keepalive を On にして
その代わりに kieepalive の timeout を 1 にするとか

Ver1.2では インデックスが適切に設定されていないので
Ver1.3 のインデックスを真似て追加するとかでしょうか。
Ver1.3にするだけで可也早くなりますよ。
-----
木下 敏夫
http://www.tktools.jp/

大阪府産業デザインセンターデザイン専門員 ( http://bmb.oidc.jp/index.php?topic=-m-D14 )
奥様ショップ 店長 ( http://okusama-shop.com/ )
電脳ドロップシッピング 店長 ( http://d-064.d-shipping.net/ )
アバター
irijon
記事: 212
登録日時: 2006/3/24 17:34
お住まい: 北海道幕別町
連絡を取る:

投稿記事by irijon » 2008/5/19 19:44

memcache ですか、うらやましい。
eAccelerator のキャッシュすら、/admin 以下は無効にしています。

最近benchmarkでチェックしていますが、遅い時って
includes/application_top.php が遅いですね。
これを何とかしたい。
イリジョン
http://irijon.com/
ショッピングサイト
http://irijon.biz/
http://irijon.biz/m/
アバター
kb1
記事: 23
登録日時: 2007/10/03 03:16

例えば・・

投稿記事by kb1 » 2008/5/19 22:05

:idea: mysql_pconnect()を使用するのも効果があるようです。
God helps them who help themselves.
アバター
maixx

高速化

投稿記事by maixx » 2008/5/19 22:10

memcacheはCPU負荷がほとんどかからないので、古いマシンにインストールして使っています。phpのセッションに使うだけでも結構いい感じです。


私は pecl で APCを導入することが多いです。

それ以外は apache の設定で keepalive を On にして
その代わりに kieepalive の timeout を 1 にするとか

Ver1.2では インデックスが適切に設定されていないので
Ver1.3 のインデックスを真似て追加するとかでしょうか。
Ver1.3にするだけで可也早くなりますよ。


APCも使ってみましたが、手軽に高速化できていい感じですね :)
Keepaliveと1.3のインデックスですか。なるほど。
是非試してみたいと思います。ありがとうございます。

最近benchmarkでチェックしていますが、遅い時って
includes/application_top.php が遅いですね。
これを何とかしたい。

Xdebugでみていますが、やはりapplication_top.php 遅いですね。。
requireが多いからかなぁ。

また、何かよい情報があればこちらで共有させていただきますので、
是非皆様も可能な範囲でご教授いただけると幸いです。
アバター
irijon
記事: 212
登録日時: 2006/3/24 17:34
お住まい: 北海道幕別町
連絡を取る:

Re: 例えば・・

投稿記事by irijon » 2008/5/19 23:34

kb1 さんが書きました::idea: mysql_pconnect()を使用するのも効果があるようです。


これって configure.php で設定できますよね。
問題は安定性です。

利用されている方は、いらっしゃるのかな?
イリジョン

http://irijon.com/

ショッピングサイト

http://irijon.biz/

http://irijon.biz/m/
アバター
kb1
記事: 23
登録日時: 2007/10/03 03:16

mysql_pconnect()

投稿記事by kb1 » 2008/5/20 00:47

irijon さん wrote:
これって configure.php で設定できますよね。
問題は安定性です。


configure.phpで設定してもpconnectは使用できないようになっているようです:?

includes/classes/db/mysql/query_factory.php - line 30

if ($zf_pconnect != 'false') {
$this->link = @mysql_connect($zf_host, $zf_user, $zf_password, true);
} else {
// pconnect disabled ... leaving it as "connect" here instead of "pconnect"
$this->link = @mysql_connect($zf_host, $zf_user, $zf_password, true);
}

私は直接ココを書き換えてしまっていますが、
irijon さんが指摘されているように、アクセスが集中したときなどに何か問題が生じるのかもしれません・・:(
God helps them who help themselves.
アバター
irijon
記事: 212
登録日時: 2006/3/24 17:34
お住まい: 北海道幕別町
連絡を取る:

Re: mysql_pconnect()

投稿記事by irijon » 2008/5/22 18:12

kb1 さんが書きました:configure.phpで設定してもpconnectは使用できないようになっているようです:?


共有サーバーの方への対策ですかね?
で、テストしてみましたが、少しレスポンス向上しました。
MySQLの最大接続数以内なら、問題なさそうですね。
接続失敗回数が、少し増えましたが....
イリジョン

http://irijon.com/

ショッピングサイト

http://irijon.biz/

http://irijon.biz/m/
アバター
kino
記事: 893
登録日時: 2005/5/15 19:39
お住まい: 京都
連絡を取る:

投稿記事by kino » 2008/5/22 23:23

木下です。

同時アクセスの多いサーバーだと
mysql の プロセスが多数残ってしまってメモリーが足りなくなって
SWAPが発生して更なる遅延を引き起こし、最終的には MySQLが
落ちてしまう。

ということで、その設定を行った為にサーバーを解約させられた
という話が以前にあったと思います。

SWAPが発生する前にMaxConnectionになるように設定すれ等
サーバーの設定を上手に行ってやれば効果はあるはずなんですけどね。
-----
木下 敏夫
http://www.tktools.jp/

大阪府産業デザインセンターデザイン専門員 ( http://bmb.oidc.jp/index.php?topic=-m-D14 )
奥様ショップ 店長 ( http://okusama-shop.com/ )
電脳ドロップシッピング 店長 ( http://d-064.d-shipping.net/ )
アバター
irijon
記事: 212
登録日時: 2006/3/24 17:34
お住まい: 北海道幕別町
連絡を取る:

投稿記事by irijon » 2008/5/31 00:12

irijonです

しばらく様子を見ていましたが、
Apache の MaxClients を少なめに設定していますので、無問題です。

サーバーの負担が減少したためか、アクセス集中時でも、以前より快適です。
リソースが不足気味で、全体に遅いですが...。

kb1 さんに感謝です。
イリジョン

http://irijon.com/

ショッピングサイト

http://irijon.biz/

http://irijon.biz/m/

“Zen Cart 雑談処「禅亭」” へ戻る