XCacheとMySQLのquery cacheの効果

先日19日に入れたXCacheとMySQLのquery cacheですが、キャッシュヒット時とミス時のペナルティとか、そういう値は良く分からないのですが、統計値を見る限りは効果がすごいですね。今のところ不具合もないです。

MySQLのqueryの統計を見ると、下図(muninのグラフです)を見る通り、ほとんどがキャッシュヒットになりました。右端の紫がキャッシュヒットで、有効にした途端にselectのクエリ数が激減し、キャッシュヒットで返せるようになっています。値が増えているのは、理由がよくわからない。アクセスが増えたわけではないです。

localhost-mysql_queries-month

設定はmy.cnfの以下を[mysqld]セクションに記述してmysqldをrestartするだけ。簡単ですね。なんでデフォルトで有効じゃないんだろう…

query_cache_limit=1M
query_cache_min_res_unit=4k
query_cache_size=24M
query_cache_type=1

次、XCache。これも統計を見るとコードはほぼ100%、データも85%程度がキャッシュヒットです。うちではブログくらいにしか使っていないので、このサイズで済んでます。

20080423082244

設定は以下の通り。

configure; make; make installのあと、/etc/php.d/xcache.initに以下を記述してhttpdをrestartします。admin.userとadmin.passは適当に設定してください。admin.passにはパスワードをmd5にかけたものを書きます。統計を見ると、var_sizeはもっと小さくていいと思いますね。デフォルト1Mだったのを少ないかと思って8Mに増やしたんですが、1Mでちょうどいいかもしれません。いや、Availが残り少ないのでvar_sizeは増やしといたほうがよさそうですね。32Mに増やして様子を見ることにしました。際限なく増やしていってもしょうがないけどね。逆にcodeのほう(xcache.size)は20MBくらいしか使ってませんので、半分に減らしても大丈夫でしょう。

[xcache-common]
zend_extension = /usr/lib/php/modules/xcache.so

[xcache.admin]
xcache.admin.auth = On
xcache.admin.user = "xxxxxx"
xcache.admin.pass = "xxxxxxxxxxxxxxxxxxxxxxxxxxx"
; xcache.admin.pass = ""
[xcache]
xcache.shm_scheme = "mmap"
xcache.size = 64M
xcache.count = 1
xcache.slots = 8K
xcache.ttl = 0
xcache.gc_interval = 0
xcache.var_size = 8M
xcache.var_count = 1
xcache.var_slots = 8K
xcache.var_ttl = 0
xcache.var_maxttl = 0
xcache.var_gc_interval = 300
xcache.test = Off
xcache.readonly_protection = Off
xcache.mmap_path = "/tmp/xcache"
xcache.coredump_directory = ""
xcache.cacher = On
xcache.stat = On
xcache.optimizer = Off

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です