Cent OS+WordPressでMemcachedを使う【W3TotalCache】
表題のとおり、Cent OS 6.5 + WordPress の環境で Memcached を使う方法、の自分用メモです。
僕の環境でのインストール手順は最終的に以下の方法に落ち着きました。
# yum --enablerepo=remi install memcached # yum install php-pecl-memcache # apachectl restart # chkconfig memcached on # cd /etc/sysconfig # vi memcached 以下に編集 PORT="11211" USER="memcached" MAXCONN="1024" CACHESIZE="64" OPTIONS="-l 127.0.0.1" # service memcached start
標準リポジトリの memcached はバージョンが古く、安定性の問題があるように思うので、remiリポジトリから最新の memcached を入れています。(別途、remiリポジトリの設定が必要)
また、/etc/sysconfig/memcached の起動パラメータは各自チューニングするのが良いでしょう。
最初はうっかり php-pecl-memcached をインストールしてしまい、W3TotalCache から Memcached が認識されず右往左往しましたが、W3TCのソースを読んだら、必要なのは「php-pecl-memcache」の方だった。というオチ。
PHP の memcache モジュールは pecl でインストールしても良いですが、多少追加の手順が要りそうです。(php.ini 関連とか)
インストール後は、W3TotalCache から適切なキャッシュメカニズムを選択してやれば設定完了です。
今回はとりあえず動く、というお遊びレベルの簡単な手順にまとめましたが、本気で使うなら監視も必要ですし、もっとちゃんとした手順でやった方がいいと思います。
最初は軽い気持ちで APC を W3TotalCache のバックエンドとして使っていましたが、APC 自体もともと OpCode キャッシュとして設計されているせいかメモリの断片化が起こりやすく、アクセス増と重なると CPU Usage や Load Average が重くなるケースが散見されまして。
で、APC のメモリ割り当てを増やしたりアプリ側のTTLもチューニングしましたが、長時間激しく使っている内にどうしてもパフォーマンスが落ちてくる。っていう問題があって、あと、そもそもがAPCって、メモリに収まりきらない親データサイズを前提に激しくデータが入れ替わる前提で設計されてないっすよね?的な雰囲気を感じたので Memcached に入れ替えた。というわけです。
定期的に APC の user cache をクリアする手もありますが、根本対策になってないですし、その頻度を最適化する必要も出てきそうで面倒だったので。その方法の方がパフォーマンスは出る気はしなくもありませんが…。
※2014/11/1 remiレポジトリを使い最新版Memcachedを入れるよう記事を更新