Memcachedを導入する

WIKIPLUSには様々なキャッシュ機構が備わっています。このキャッシュ機構をすべて有効にするためにはMemcachedの導入が必要です。

キャッシュをメモリ上に保存するため、非常に高速な動作が可能になります。

ここでは、Red Hat Enterprise Linux 6の場合を例に、Memcachedを導入する方法をご案内します。

パッケージのインストールと起動

リポジトリ設定

WIKIPLUS 3.0までは当社が提供するMemcachedパッケージを利用していましたが、WIKIPLUS 4.0より標準リポジトリのパッケージを利用するよう変更されました。

そのため、あらかじめ以下を行う必要があります。

/etc/yum.repos.d/jpc-wikiplus.repo
libevent*とmemcachedを除外します。
/etc/yum.repos.d/pgdg-94-redhat.repo(9.4の場合)
libevent*とcompat-libevent*を除外します。
/etc/yum.repos.d/jpc-wikiplus.repo
[jpc-releases]
(略)
[jpc-wikiplus]
(略)
[jpc-wikiplus-deps]
exclude=libevent*,memcached  [←追記]
(略)
/etc/yum.repos.d/pgdg-94-redhat.repo(9.4の場合)
[pgdg94]
exclude=libevent*,compat-libevent*  [←追記]
(略)

インストール

# yum install memcached php-memcache

設定

/etc/sysconfig/memcachedを編集します。設定内容は、収容する予定のインスタンス数やインスタンスが持つコンテンツサイズなど、様々な側面で変化します。

まずはデフォルトの状態で開始し、運用において適宜チューニングをしてもよいでしょう。

起動

Memcachedを起動します。PHPのプロセスが起動している場合も考慮し、あわせてApacheも再起動します。

# service memcached start
# chkconfig memcached on
# service httpd restart

起動したら、memcached-toolコマンドで接続ができることを確認します。未設定のため、何も保存されていません。

# memcached-tool localhost display
  #  Item_Size  Max_age   Pages   Count   Full?  Evicted Evict_Time OOM

WIKIPLUSの設定

Memcachedの設定はserver-config.ymlに記述します。/opt/JPC/wikiplus/conf/server-config.ymlを編集し、設定します。

設定項目

WIKIPLUSではMemcachedに加えてPDOに保存する機能もありますが、ここではMemcacheにのみキャッシュを保存する場合を例としています。

それぞれの設定項目の詳細はserver-config.ymlに記載されたコメントをご参照ください。

SERVERMEMCACHEDTYPE「Memcache」を入力します。
HOSTMemcachedがインストールされたサーバーのFQDNまたはIPアドレスを入力します。
PORTMemcachedの待ち受けポート番号を入力します。
CONNECTION_POOL「true」を入力します。
DEFAULT_TIMEOUTデータの保持時間のデフォルト値です。キャッシュを保存するプログラムにより異なりますので、ここでは指定されなかった場合の保持時間となります。
設定例
SERVER:
 MEMCACHED:
  TYPE: Memcache
  HOST: localhost
  PORT: 11211
  CONNECTION_POOL: true
  DEFAULT_TIMEOUT: 3600

確認

WIKIPLUSのインスタンスの公開側URLまたは編集側URLにアクセスし、Memcachedにデータが保存されたことを確認します。

[root@wp1 ~]# memcached-tool localhost display
  #  Item_Size  Max_age   Pages   Count   Full?  Evicted Evict_Time OOM
  5     240B      2554s       1       1      no        0        0    0
  9     600B      2554s       1       2      no        0        0    0
 10     752B      2554s       1       2      no        0        0    0
 11     944B      2554s       1       3      no        0        0    0
 12     1.2K      2554s       1       2      no        0        0    0
 13     1.4K      2554s       1       1      no        0        0    0
 14     1.8K      2554s       1       3      no        0        0    0
 15     2.3K      2554s       1       1      no        0        0    0
 18     4.4K         0s       1       0      no        0        0    0
 19     5.5K      2554s       1       1      no        0        0    0
 21     8.7K      2554s       1       1      no        0        0    0
 22    10.8K      2554s       1       1      no        0        0    0
 26    26.5K      2554s       1       1      no        0        0    0