====== 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