====== memcache ======
===== 構築 =====
==== インストール ====
# rpm -ivh http://download.fedora.redhat.com/pub/epel/5/x86_64/epel-release-5-4.noarch.rpm
# rpm -ivh http://rpms.famillecollet.com/enterprise/5/remi/x86_64/remi-release-5-8.el5.remi.noarch.rpm
# yum -y --enablerepo=remi,epel install memcached
==== 設定確認・変更 ====
# cat /etc/sysconfig/memcached
PORT="11211"
USER="memcached"
MAXCONN="1024"
CACHESIZE="64"
OPTIONS=""
==== 起動 ====
# /etc/rc.d/init.d/memcached start
(# yum -y --enablerepo=remi install php-pecl-memcache)
==== 自動起動設定 ====
# chkconfig memcached on
===== 起動時に指定可能なオプション =====
memcached -u daemon -d -m 128 -p 11211 -c 100000 -l 127.0.0.1
* u\\ 起動するユーザ\\ rootでは起動できないので注意
* d\\ デーモンとして起動
* m\\ メモリサイズ\\ default:64(MB)\\ 物理メモリからシステム関連のメモリを引いた数字。\\ 物理メモリの80%程度までを指定。
* p\\ Listenするポート番号\\ default:11211
* c\\ 最大コネクション数\\ default:1024\\ 1024以上しか指定できない。
* l\\ ListenするIPアドレス
* vv\\ 冗長モード\\ very verboseモードで起動してデバックメッセージやエラーをコンソールへ出力
==== サンプル ====
* memcached -u daemon -d -m 3000 -p 11211 -c 262144 -l 127.0.0.1
* memcached -u nobody -C -m 16G -p 11211 -c 32768 -U 0
===== memcachedコマンド =====
* set\\ set <キー> <フラグ> <有効期間> <サイズ>\\ \\ キー「hoge」に「123」という3バイトのデータを非圧縮/無期限で格納set hoge 0 0 3
123
=>STORED
* get\\ get <キー>\\ \\ キー「hoge」の値を取得get hoge
=>VALUE hoge 0 3
=>123
=>END
===== pecl::memcache =====
==== インストール ====
# yum -y --enablerepo=remi install php-pecl-memcache
==== 設定確認・変更 ====
# echo "extension=memcache.so" | sudo tee /etc/php.d/memcache.ini
==== 起動(= 設定反映) ====
# /etc/rc.d/init.d/httpd restart
===== memcached 監視 =====
==== phpの動作するサーバからmemcachedが動作しているサーバへコマンドを投げる ====
# php -r '$m=new Memcache;$m->connect("memcachedサーバ");print_r($m->getstats());'
出力概要
Array
(
[pid] => プロセスID
[uptime] => memcachedの起動時間(秒)
[time] => 現在時刻のタイムスタンプ
[version] => memcacheのバージョン
[pointer_size] => OSが32bit又は64bit
[rusage_user] => プロセスがユーザモードで動作した累計時間?(秒.マイクロ秒)
[rusage_system] => プロセスがカーネルモードで動作した累計時間?(秒.マイクロ秒)
[curr_connections] => 現在のコネクション数
[total_connections] => memcacheの起動からの累計コネクション数
[connection_structures] => memcacheが確保したコネクション構造体数
[cmd_get] => GETコマンド発行の累計
[cmd_set] => SETコマンド発行の累計
[cmd_flush] =>
[get_hits] => リクエストでキーが見つかった数
[get_misses] => リクエストでキーが見つからなかった数
[delete_misses] =>
[delete_hits] =>
[incr_misses] =>
[incr_hits] =>
[decr_misses] =>
[decr_hits] =>
[cas_misses] =>
[cas_hits] =>
[cas_badval] =>
[auth_cmds] =>
[auth_errors] =>
[bytes_read] => ネットワークから受信したバイト数
[bytes_written] => ネットワークへ送信したバイト数
[limit_maxbytes] => memcacheの最大容量(バイト)
[accepting_conns] =>
[listen_disabled_num] =>
[threads] => リクエスト当たりに動作するスレッド数
[conn_yields] =>
[bytes] =>
[curr_items] =>
[total_items] =>
[evictions] =>
[reclaimed] =>
)
==== キャッシュヒット率=get_hits/cmd_get ====
# php -r '$m=new Memcache;$m->connect("127.0.0.1");$c=$m->getstats();$c1=$c["get_hits"];$c2=$c["cmd_get"];$c3=($c1<>0 and $c2<>0)?$c1/$c2:0;print $c3;'
==== コンソールから監視 ====
# echo 'stats' | nc 127.0.0.1 11211
STAT pid 4574
STAT uptime 13918140
STAT time 1389948852
STAT version 1.4.15
STAT libevent 1.4.13-stable
STAT pointer_size 64
STAT rusage_user 908.325913
STAT rusage_system 2409.051768
STAT curr_connections 5
STAT total_connections 17983490
STAT connection_structures 166
STAT reserved_fds 20
STAT cmd_get 17358812
STAT cmd_set 17358229
STAT cmd_flush 0
STAT cmd_touch 0
STAT get_hits 15102293
STAT get_misses 2256519
STAT delete_misses 567296
STAT delete_hits 101671
STAT incr_misses 0
STAT incr_hits 0
STAT decr_misses 0
STAT decr_hits 0
STAT cas_misses 0
STAT cas_hits 0
STAT cas_badval 0
STAT touch_hits 0
STAT touch_misses 0
STAT auth_cmds 0
STAT auth_errors 0
STAT bytes_read 2796046793
STAT bytes_written 2173543015
STAT limit_maxbytes 5368709120
STAT accepting_conns 1
STAT listen_disabled_num 0
STAT threads 4
STAT conn_yields 0
STAT hash_power_level 18
STAT hash_bytes 2097152
STAT hash_is_expanding 0
STAT bytes 21909458
STAT curr_items 125919
STAT total_items 17358229
STAT expired_unfetched 2128513
STAT evicted_unfetched 0
STAT evictions 0
STAT reclaimed 2128513
END
===== 参考サイト =====
CloudForecastでmemcachedのコネクション数をモニタリング
http://d.hatena.ne.jp/taka512/20100324/1269428213
「stats settings」コマンド
http://blog.nomadscafe.jp/2010/08/cloudforecastmemcached.html
memcached 起動時オプション
http://tech.feedforce.jp/memcached.html
memcachedの安定稼働のためのメモ
http://wiki.livedoor.jp/puriketu99/d/memcached%A4%CE%B0%C2%C4%EA%B2%D4%C6%AF%A4%CE%A4%BF%A4%E1%A4%CE%A5%E1%A5%E2
Memcached
http://webmemo.uzuralife.com/category/336
memcachedコマンド一覧
http://l-w-i.net/t/memcached/command_001.txt