yumでインストールされたmemcachedの設定の初期値は、おおよそ以下のようになっているはずです。
/etc/sysconfig/memcached
PORT="11211"
USER="memcached"
MAXCONN="1024"
CACHESIZE="64"
OPTIONS=""
せっかく大富豪インスタンスを使っているのだから、もっと接続できるようにして、もっとメモリを使いましょう。
/etc/sysconfig/memcached
PORT="11211"
USER="memcached"
MAXCONN="65535"
CACHESIZE="160000"
OPTIONS=""
……将来的に平民インスタンスにスケールダウンする可能性もあるので、これを決め打つのはマズいのでは?
この設定ファイルは起動スクリプトを読むと分かるのですが、ただのシェルスクリプトです。
/etc/rc.d/init.d/memcached
#! /bin/sh
#
# chkconfig: - 55 45
# description: The memcached daemon is a network memory cache service.
# processname: memcached
# config: /etc/sysconfig/memcached
# pidfile: /var/run/memcached/memcached.pid
## 中略
PORT=11211
USER=memcached
MAXCONN=1024
CACHESIZE=64
OPTIONS=""
if [ -f /etc/sysconfig/memcached ];then
. /etc/sysconfig/memcached
fi
## 後略
使えるメモリ量の8割を使うように書いてしまいましょう。
/etc/sysconfig/memcached
PORT="11211"
USER="memcached"
MAXCONN="65535"
TOTAL=`free -m | head -2 | tail -1 | awk '{print $2}'`
CACHESIZE="`echo "$TOTAL * 0.8" | bc | awk -F '.' '{print $1}'`"
OPTIONS=""
memcachedを再起動して、実際に適用されているか確認します。
$ sudo service memcached restart
$ free -m
total used free shared buffers cached
Mem: 7492 339 7152 0 84 102
-/+ buffers/cache: 152 7339
Swap: 0 0 0
$ ps ax | grep memcached
2525 pts/0 S+ 0:00 grep memcached
31366 ? Ssl 0:00 memcached -d -p 11211 -u memcached -m 5993 -c 65535 -P /var/run/memcached/memcached.pid
起動オプション -m
の値が動的に設定されていることが確認できました。