当memcached启动起来并被访问后,如何知道其详细运行情况呢,详细包括守护进程的pid、版本、保存的项目数量、内存占用、最大内存限制等信息。
1.telnet方式访问memcached
# telnet 192.168.1.91 12000
Escape character is '^]'.
stats
STAT pid 31235
STAT uptime 958
STAT time 1233563908
STAT version 1.2.6
STAT pointer_size 32
STAT rusage_user 0.025996
STAT rusage_system 0.039993
STAT curr_items 0
STAT total_items 4
STAT bytes 0
STAT curr_connections 2
STAT total_connections 613
STAT connection_structures 6
STAT cmd_get 14
STAT cmd_set 4
STAT get_hits 9
STAT get_misses 5
STAT evictions 0
STAT bytes_read 6046
STAT bytes_written 218858
STAT limit_maxbytes 1048576000
STAT threads 1
END
其中,uptime 是memcached运行的秒数,cmd_get是查询缓存的次数。这两个数据相除一下就能得到
平均每秒请求缓存的次数——最近niupu的流量很低,所以平均也就一秒请求一次多,这么点大的压力,用文件系统缓存一样没问题,根本不会体现出使用memcached的优越。
下面的cmd_set 就是设置key=>value的次数。整个memcached是个大hash,用cmd_get没有找到的内
容,就会调用一下cmd_set写进缓存里。紧跟着是get_hits,就是缓存命中的次数。缓存命中率 =
get_hits/cmd_get * 100%。
下面的get_misses的数字加上get_hits应该等于cmd_get。而total_itemscurr_items表示现在在缓存中的键值对个数,在图上total_items == cmd_set == get_misses,不过当可用最大内存用光时
,memcached就会删掉一些内容,上面的等式就不成立了。
2.perl脚本写的memcached-tool管理工具
下载地址:
使用方法如下:
# ./memcached-tool 192.168.1.91 12000