Category Archives: アクセラレータ

さくらインターネットにZend Optimizerを導入

さくらインターネットにZend Optimizerを導入 | PHP MySQL高速化 | Create it!

さくらインターネットでも普通に使えるんですね。いつか入れよう。という時のためのメモ。

XCacheで変数をキャッシュ

XCacheを導入してみた

その秘密のひとつは共有メモリを利用したキャッシュを使って、プラグインオプションをすべてメモリ上に保持するようにしMySQLへのクエリの数を抑えているというところにあります。

そうなんです。変数をメモリ上にキャッシュできるんです。どこかで見たことある機能なのに忘れていました。感謝。
静的なテーブルデータなどをキャッシュしておくと幸せな気がしますね。いや、それはDBのほうでキャッシュをきかせればいいのかな。。。

XCacheをインストールしてみました。

ではさっそくダウンロード
Fedora7に入れました。

[code]
$ wget “http://xcache.lighttpd.net/pub/Releases/1.2.1/xcache-1.2.1.tar.gz”
$ tar zxvf xcache-1.2.1.tar.gz
$ cd xcache-1.2.1
$ phpize
$ ./configure –enable-xcache –enable-xcache-coverager –with-php-config=/usr/bin/php-config
$ make
$ make test
# make install
[/code]

正直、coverageはxdebugでやるのでいらないかな、とも思いつつ。


Installing shared extensions: /usr/lib/php/modules/

というわけで無事インストールされました。早速組み込みましょう。例によってphp.iniを編集します。


[xcache-common]
zend_extension = /usr/lib/php/modules/xcache.so
[xcache.admin]
xcache.admin.auth = On
xcache.admin.user = "mOo"
; xcache.admin.pass = md5($your_password)
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 = 1M
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
[xcache.coverager]
xcache.coverager = Off
xcache.coveragedump_directory = "/tmp/xcachecov"

解凍したxcacheディレクトリにあるxcache.iniZAPAさんのを参考に設定しました。
[code]
$ php -i
[/code]
でxcacheが組み込まれていることを確認。早速(既に実行時間を計測してあった)CLIスクリプトをxcache組み込みで走らせませす!
何も変わらず!ズコー!
念のためApacheを再起動したりしてみましたが、何も変わりませんね。

xcacheのadmin画面でCacheの確認が出来たりしますので、その設定を行いましょう。解凍したxcacheディレクトリに/adminというフォルダがありますでの、それをWEBディレクトリにコピーするなりし、ブラウザから先ほどのphp.iniで設定したadmin.userとadmin.passを用いてアクセスします。
#admin.passはmd5で符号化してください。
#php -r “echo md5(“your-password”);”
#など。

で、admin画面で確認してもCLIは全くキャッシュされていませんね。。

mod_phpとかphp-cgiしか早くならない?のですかね。
もちろんApache上でWEBサイトとしてアクセスした場合はきちんと早くなってます。Zend Frameworkを使った簡単なサイトで計測して、スクリプトの実行時間が半分になりました。すごいです。それだけで感動。