1G=1024*1024*1024=1073741824 bytes
一、缓存命中率 = get_hits/cmd_get * 100%
二、get_misses的数字加上get_hits应该等于cmd_get
三、total_items == cmd_set == get_misses,当可用最大内存用光时,
memcached就会删掉一些内容,等式就会不成立
--------------------------------------------------- netstat
netstat -anp | grep memcached
netstat -n| grep 12000
查找较多time_wait连接
netstat -n| grep 12000 |grep TIME_WAIT|awk '{print $5}'|sort|uniq -c|sort -rn|head -n20
------------------------------------------phpmemcached
见附件 memcachephp.zip
-------------------------------------memcached-top
见附件 memcache-top-v0.rar
perl memcache-top-v0.6 --instances=192.168.1.252:12000,192.168.1.241:12000
memcache-top v0.6 (default port: 11211, color: on, refresh: 3 seconds)
INSTANCE USAGE HIT % CONN TIME EVICT/s READ/s WRITE/s
192.168.1.252:12000 0.3% 0.0% 77 0.8ms 0.0 2 201
192.168.1.241:12000 0.0% 0.0% 55 1.2ms 0.0 134 1380
AVERAGE: 0.2% 0.0% 66 1.0ms 0.0 68 790
TOTAL: 1.8MB/ 1.0GB 132 2.0ms 0.0 136 1581
(ctrl-c to quit.)
------------------------------------telnet
用telnet测试memcached
telnet 127.0.0.1 11211
Trying 127.0.0.1…
Connected to zou.yunhao (127.0.0.1).
Escape character is ‘^]’.
set key 0 10 6 //10表示过期时间10秒,6表示将要存入数据字节为6(这里result为6)
result
STORED
get key
VALUE key 0 6
result
END
4)memcached性能查看命令stats
telnet 127.0.0.1 11211
stats
STAT pid 18006
STAT uptime 702 //memcached运行的秒数
STAT time 1292904537 //memcached服务器所在主机当前系统的时间,单位是秒。
STAT version 1.4.5
STAT pointer_size 64 //服务器所在主机操作系统的指针大小,一般为32或64
STAT rusage_user 0.003999
STAT rusage_system 0.013997
STAT curr_connections 10 //表示当前的连接数
STAT total_connections 11 //表示从memcached服务启动到当前时间,系统打开过的连接的总数。
STAT connection_structures 11
//服务器分配的连接构造数
STAT cmd_get 0 //查询缓存的次数,平均每秒缓存次数cmd_get/uptime
STAT cmd_set 0 //设置key=>value的次数
STAT cmd_flush 0
STAT get_hits 0 //缓存命中的次数,缓存命中率=get_hits/cmd_get*100%
STAT get_misses 0 //cmd_get-get_hits
STAT delete_misses 0
delete未命中次数
STAT delete_hits 0
delete命中次数
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 auth_cmds 0
STAT auth_errors 0
STAT bytes_read 7 //memcached服务器从网络读取的总的字节数
STAT bytes_written 0 //memcached服务器发送到网络的总的字节数。
STAT limit_maxbytes 67108864 //memcached服务缓存允许使用的最大字节数 分配给memcache的内存大小(字节)
STAT accepting_conns 1
STAT listen_disabled_num 0
STAT threads 4 当前线程数
STAT conn_yields 0
STAT bytes 0
STAT curr_items 0 服务器当前存储的items数量
STAT total_items 0 从服务器启动以后存储的items总数量
STAT evictions 0 为获取空闲内存而删除的items数(分配给memcache的空间用满后需要删除旧的items来得到空间分配给新的items)
STAT reclaimed 0
END
quit 退出
STAT pid 1253
STAT uptime 76637
STAT time 1305776802
STAT version 1.4.5
STAT pointer_size 32
STAT rusage_user 2.339644
STAT rusage_system 14.290827
STAT curr_connections 5
STAT total_connections 88669
STAT connection_structures 79
STAT cmd_get 88660
STAT cmd_set 88661
STAT cmd_flush 0
STAT get_hits 73875
STAT get_misses 14785
STAT delete_misses 0
STAT delete_hits 0
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 auth_cmds 0
STAT auth_errors 0
STAT bytes_read 79554683
STAT bytes_written 65724855
STAT limit_maxbytes 10485760
STAT accepting_conns 1
STAT listen_disabled_num 0
STAT threads 4
STAT conn_yields 0
STAT bytes 4149748
STAT curr_items 5171
STAT total_items 88660
STAT evictions 0
STAT reclaimed 9610
-------------------------------
[root@jushanweb1 ~]# telnet 192.168.12.201 13002
Trying 192.168.12.201...
Connected to 192.168.12.201 (192.168.12.201).
Escape character is '^]'.
stats
STAT pid 8382
STAT uptime 190574
STAT time 1301579774
STAT version 1.2.0
STAT pointer_size 32
STAT rusage_user 0.003999
STAT rusage_system 0.033994
STAT curr_items 1
STAT total_items 1
STAT bytes 50
STAT curr_connections 2
STAT total_connections 4
STAT connection_structures 3
STAT cmd_get 0
STAT cmd_set 1
STAT get_hits 0
STAT get_misses 0
STAT bytes_read 216
STAT bytes_written 92
STAT limit_maxbytes 524288000
END
监控
1)nagios监控
a. check_memcached
先要安装check_memcached插件
wget http://search.cpan.org/CPAN/authors/id/Z/ZI/ZIGOROU/Nagios-Plugins-Memcached-0.02.tar.gz
tar xzvf Nagios-Plugins-Memcached-0.02.tar.gz
cd Nagios-Plugins-Memcached-0.02
perl Makefile.PL (可能需要其他perl的modules,依照提示通过cpan安装即可)
make && make install
check_memcached [-H host:port] [-w warnings] [-c critical] [--size-warnng size-warnng] [--size-critical size-critical] [--hit-warning hit-warning] [--hit-critical
hit-critical] [-t timeout]
b. /check_tcp -H host -p 11211 -t 5 -E -s ‘stats\r\nquit\r\n’ -e ‘uptime’ -M crit
2)cacti监控
一台服务器起多个memcached,多端口cacti部署监控。
a. 需要一个 Python memcached Client API
wget ftp://ftp.tummy.com/pub/python-memcached/python-memcached-1.45.tar.gz
tar xzvf python-memcached-1.45.tar.gz
cd python-memcached-1.45
python setup.py install
b. 加模板memcached multiport
wget http://tag1consulting.com/blog/cacti-memcache-multi-port-templates
cp memcached.py <cacti install目录>/scripts/memcachedmultiport.py
c. 增加监控时devices->des && ip->host template选择memcachedmultiport->Downed Device Detection选择none->SNMP Version选择not in use->create graphs->Port to query for memcached statistics填写memcached端口。
3)也可以自定义nagios、cacti监控,通过memcached命令stats取相关数据。