いまさら感いっぱいですが、サーバが複数台の場合にセッションをどーするか・・・と言う所で、今まではNFSにファイルで出力していましたがファイルのI/Oは遅い。そして、DBはギリギリの構成なのでセッションを入れるなんて使い道は出来ないと言う事で、memcachedを利用して見る事にしました。
まずは、必要なものをインストールしてしまいます。
yum install -y memcached
インストールが完了したら、起動前にmemcachedの設定を行います。
vi /etc/sysconfig/memcached
下記の内容は、それぞれの環境(メモリが多ければ増やして・・・など)に合わせて変えてください。
PORT="11211" USER="memcached" MAXCONN="1024" CACHESIZE="64" OPTIONS=""
設定が完了したら、早速起動してみます。
/etc/init.d/memcached start
無事に起動したことを確認した上で、自動起動の設定も行います。
chkconfig memcached on
自動起動に設定されているか?を最後に確認します。
chkconfig --list | grep 3:on
本当に動いているかを確認するには、telnetを利用することで接続が可能です。
telnet localhost:11211
接続が出来たら、下記のコマンドで状態を確認できます。
stats
切断する場合には、下記のコマンドを入力します。
quit
最後に設定ファイル(/etc/sysconfig/memcached)について、自分へのメモを含め記載します。
PORT
ポート番号
USER
実行ユーザー
MAXCONN
memcachedへの同時接続数
CACHESIZE
利用メモリサイズ
OPTIONS
※オプション
各オプションについては、下記の内容を設定可能です。
-p port
ListenするTCPポート番号 11211
-U port
ListenするUDPポート番号 0
-s file
UnixソケットへのPath(ネットワークは非サポート)
-a mask
Unixソケットのアクセスマスク
-l ip_address
memcachedがListenするIPアドレス
-d
デーモンとして起動する場合は指定
-r
コアファイルの上限を最大にする
-u user
memcachedを起動するユーザ名(root権限で実行した場合のみ有効)
-m memory
最大メモリ使用量(単位:MB)
-M
メモリを使い果たしたときにエラーを返す
-c connection
最大同時接続数
-k
不明
-v
verboseモードで起動して、errorとwarningを出力
-vv
very verboseモードで起動してデバックメッセージやエラーをコンソールへ出力
-h
memcachedのバージョンとヘルプを表示
-i
memcachedとlibeventのライセンスを表示
-b
管理インスタンスの起動
-p file
PIDファイルの保存ファイル(デーモンとして起動した場合のみ有効)
-f factor
チャンクサイズの増加係数(デフォルト値 1.25)
-n bytes
キャッシュ1つにあたり(key + value + flags)に割り当てる最小サイズ