对于memcached的监控,常用的如memcache的php页面图形监控,通过一些常用的工具也可以对其监控,对于生产运维通常采用Cacti或Nagios进行监控。
一、图形化监控
memcachephp是一款memcache图形界面的监控工具,可以通过这个工具查看到局域网内所有部署memcache机器或者端口的memcache的运行情况,对我们监控memcache的缓存命中率、cache利用率、点击率等信息有很好的帮助作用。图形界面工具的推出,有助于我们性能测试工程师脱离命令行方式,避免多个memcache端口的监控窗口来回切换,更能够让测试人员有足够多的时间去做其他方面的工作。
在http://pecl.php.net/package/memcache页面下载memcache(最新版本是3.0.8),解压后得到memcache.php文件,修改其文件对应的账号、密码、memcache的IP端口,再将memcache.php文件放到安装lamp环境指定目录即可。
$VERSION='$Id: memcache.php 326707 2012-07-19 19:02:42Z ab $';
define('ADMIN_USERNAME','admin'); // Admin Username
define('ADMIN_PASSWORD','admin'); // Admin Password
define('DATE_FORMAT','Y/m/d H:i:s');
define('GRAPH_SIZE',200);
define('MAX_ITEM_DUMP',50);
$MEMCACHE_SERVERS[] = '192.168.36.54:11211'; // add more as an array
$MEMCACHE_SERVERS[] = '192.168.36.189:11211'; // add more as an array
注意:$MEMCACHE_SERVERS[]可以配置多个memcache
浏览器输入http://localhost/memcache.php 打开即可,注意第一次访问的时候提示输入登录用户名和密码。默认的的用户名密码:memcache/password,这里我修改成了admin,自己可以再php文件中配置。
在上面监控画面看出,左侧显示的是memcache的主机、端口,运行时间等信息;右侧显示的是cache利用率、缓存命中率、点击率(Hit)等信息。
注意:右则显示的信息,默认是多个memcache缓存的总数,需要选中Memcached Hosts对单个主机进行刷新,显示单个主机的信息。
二、监控小工具
1.Memcached的stats命令
stats
显示服务器信息、统计数据等
stats reset
清空统计数据
stats malloc
显示内存分配数据
stats cachedump slab_id limit_num
显示某个slab中的前limit_num个key列表,显示格式如下
ITEM key_name [ value_length b; expire_time|access_time s]
其中,memcached 1.2.2及以前版本显示的是 访问时间(timestamp)
1.2.4以上版本,包括1.2.4显示 过期时间(timestamp)
如果是永不过期的key,expire_time会显示为服务器启动的时间
stats cachedump 7 2
ITEM copy_test1 [250 b; 1207795754 s]
ITEM copy_test [248 b; 1207793649 s]
stats slabs
显示各个slab的信息,包括chunk的大小、数目、使用情况等
stats items
显示各个slab中item的数目和最老item的年龄(最后一次访问距离现在的秒数)
stats detail [on|off|dump]
设置或者显示详细操作记录
参数为on,打开详细操作记录
参数为off,关闭详细操作记录
参数为dump,显示详细操作记录(每一个键值get、set、hit、del的次数)
stats detail dump
PREFIX copy_test2 get 1 hit 1 set 0 del 0
PREFIX copy_test1 get 1 hit 1 set 0 del 0
PREFIX cpy get 1 hit 0 set 0 del 0
2.libmemcached
libmemcached 是一个 memcached 的库,客户端库,C 和 C++ 语言实现的客户端库,具有低内存占用率、线程安全、并提供对memcached功能的全面支持。它还采用 多种命令行工具: memcat , memflush , memrm , memstat ,并memslap (负载代)。
官网:https://launchpad.net/libmemcached
下载安装:
wget https://launchpad.net/libmemcached/1.0/1.0.18/+download/libmemcached-1.0.18.tar.gz
tar -zxvf libmemcached-1.0.18.tar.gz
mkdir libmemcached
./configure --prefix=/home/slim/libmemcached -with-memcached
make
make install
提供一下几个工具:
memcat – Copy the value of a key to standard output
memflush – Flush the contents of your servers.
memrm – Remove a key(s) from the server.
memstat – Dump the stats of your servers to standard output
memslap – Load generation utility (benchmark!)
查看统计消息:
memstat –server=192.168.36.54:11211
3.memcache-top
memcache-top是一个perl脚本,可以运行在term下。它能够像top一样显示各个memcached节点的状态变化,其中包括系统管理员最关心的几个指数,例如:缓存命中率、内存、 使用率、读写QPS等。
下载memcache-top脚本,打开它并进行memcached集群配置,多个节点之间以逗号分隔。
# List of servers/ ports to query.
@default_instances = (
'127.0.0.1:11211',
);
运行前要确保memcache-top脚本具有可执行权限,然后使用./执行即可。memcache-top比较重要的几个参数包括:
–commands: 显示GETS/SETS命令的调用次数
–sleep: 刷新间隔,默认为3秒
–lifetime: 显示自memcached启动以来的累计统计值,默认关闭,即仅显示瞬时速率。
项目地址:
https://code.google.com/p/memcache-top/
https://github.com/eculver/memcache-top
4.memkeys
memkeys是tumblr开源的类似top的工具,可用于实时查看memcached的key使用情况.
项目地址:https://github.com/tumblr/memkeys
使用参考http://www.ttlsa.com/memcache/memkeys-realtime-view-memcached-keys-usage/
除此之外,还有perl编写的memcached-tool工具。
三、运维监控
1.Cacti监控
# wget ftp://ftp.tummy.com/pub/python-memcached/python-memcached-latest.tar.gz
# tar zxvf python-memcached-latest.tar.gz -C ../software/
# cd ../software/python-memcached-1.47/
# yum install python-setuptools
# python setup.py install
# wget http://s1.dlnws.com/dealnews/developers/cacti-memcached-1.0.tar.gz
# tar zxvf cacti-memcached-1.0.tar.gz -C ../software/
# cd ../software/cacti-memcached-1.0/
# cp memcached.py /usr/local/cacti/scripts/
按照cacti添加节点添加新的监控主机。
2.Nagios监控
definecommand{
command_namecheck_memcachedcommand_line$USER1$/check_tcp-H$ARG1$-p$ARG2$-t$ARG3$-E-s‘stats\r\nquit\r\n’-e‘uptime’-Mcrit
}defineservice{
uselocal-servicehost_nameXXX.XXX.XXX.XXXservice_description192.168.1.1check_commandcheck_memcached!192.168.36.54!11211!5
}
参考:
memcache安装运行、cacti监控memcache实战
几种Memcache的状态监控的工具