ユーザ用ツール

サイト用ツール


centos:memcache

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

参考サイト

centos/memcache.txt · 最終更新: 2014/05/28 07:10 by clownclown

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki