OpenPNE2.10で入ったsessionをmemcached上で動かす機能について
2.10でのパフォーマンスアップへの取り組みは、
・sessionをmemcached上で動かす
・function cacheをmemcached上で動かす
の二点が大きい。
OpenPNE開発者のまるさんが良いブログを書いているので、
全文引用させてもらいます。
http://ameblo.jp/marupne/entry-10046124070.html
セッションストレージにmemcache 追記 + ファンクションキャッシュをmemcache
テーマ:ブログセッションストレージにmemcache
http://ameblo.jp/marupne/entry-10042510558.htmlに引き続き、セッションストレージにmemcacheを利用することに関して再調査と実装を行いました。
前回PHPからmemcacheが認識できないという問題がありましたが、調査したところ、現在の環境のCentOSのyumでインストールできる最新のPHPの4.3.9では、PECL::memcacheの最新の2.1.2が利用できないようです。
http://pecl.php.net/bugs/bug.php?id=10536&edit=1
http://lists.rpmforge.net/pipermail/users/2007-June/000807.htmlそのため、今回rpmでのインストールで2.0.4のPECL::memcacheをインストールにより、動作を確認しました。
インストール手順としては
http://centos.oss.sc/fundamentals/yum_rpmforge/
よりRPMforgeからrpmを取得できるようにしyum install libevent
yum install memcached
wget http://dag.wieers.com/rpm/packages/php-pecl-memcache/php-pecl-memcache-2.0.4-1.el4.rf.i386.rpm
rpm -ivh php-pecl-memcache-2.0.4-1.el4.rf.i386.rpmでインストール、OpenPNEのtrunkからソース設置、DB設定などの通常のOpenPNEの設定を行った後、config.php
・セッションをmemcacheに格納
// セッション情報を保存するストレージ
// 0:ファイル
// 1:データベース
// 2:memcache(要PECL::memcache)
define('SESSION_STORAGE', 2);
// セッションデータ保存用Memcache(オプション)
$GLOBALS['_OPENPNE_MEMCACHE_LIST']['session'] = array(
'dsn' => array(
'hostspec' => '127.0.0.1',
),
);・ファンクションキャッシュをmemcacheに格納
// このオプションを有効にするためにはOPENPNE_USE_FUNCTION_CACHEをtrueにする必要があります。
// ファンクションキャッシュのキャッシュを保存するストレージにmemcacheを使用
define('OPENPNE_USE_FUNCTION_CACHE_MEMCACHE', true);// OPENPNE_USE_FUNCTION_CACHE_MEMCACHEがtrueの場合の
// ファンクションキャッシュ用memcacheサーバ設定
$GLOBALS['_OPENPNE_MEMCACHE_LIST']['func_cache'] = array(
'dsn' => array(
'hostspec' => '127.0.0.1',
),
);のように設定することによって利用できます。
この機能は2.10に入る予定です。