您的位置:首页 > 数据库 > Memcache

查看memcache的状态并监控命中率

2013-09-26 15:53 197 查看
查看memcache的状态并监控命中率
一、查看memcache的状态:
如何查看memcache服务器端版本: ./memcached -h
memcache的运行状态可以方便的用 stats 命令显示。
首先用telnet 127.0.0.1 11211这样的命令连接上memcache,然后直接输入stats就可以得到当前memcache的状态。
这些状态的说明如下:

pidmemcache服务器的进程ID
uptime服务器已经运行的秒数
time服务器当前的unix时间戳
versionmemcache版本
pointer_size当前操作系统的指针大小(32位系统一般是32bit)
rusage_user进程的累计用户时间
rusage_system进程的累计系统时间
curr_items服务器当前存储的items数量
total_items从服务器启动以后存储的items总数量
bytes当前服务器存储items占用的字节数
curr_connections当前打开着的连接数
total_connections从服务器启动以后曾经打开过的连接数
connection_structures服务器分配的连接构造数
cmd_getget命令(获取)总请求次数
cmd_setset命令(保存)总请求次数
get_hits总命中次数
get_misses总未命中次数
evictions为获取空闲内存而***的items数(分配给memcache的空间用满后需要***旧的items来得到空间分配给新的items)
bytes_read总读取字节数(请求字节数)
bytes_written总发送字节数(结果字节数)
limit_maxbytes分配给memcache的内存大小(字节)
threads当前线程数
二、nagios监控memcache的插件:(只以命中率大于和小于为例两种状态。)
vim check_memcache
#!/bin/bash

if [ $# -ne 1 ]
then
echo "Usage:$0 -c num1"
exit 0
fi

cmd_get=`/usr/local/nagios/libexec/check_tcp -H localhost -p 8090 -E -s 'stats\r\nquit\r\n' -e 'uptime' |grep -o "cmd_get [0-9]*"|awk '{print $2}'`
get_hits=`/usr/local/nagios/libexec/check_tcp -H localhost -p 8090 -E -s 'stats\r\nquit\r\n' -e 'uptime' |grep -o "get_hits [0-9]*"|awk '{print $2}'`

hit_rate=`echo "$get_hits*100/$cmd_get"|bc`

if [[ $hit_rate -lt $1 ]];then
echo "OK - hit rate is $hit_rate% | hit_rate=$hit_rate cmd_get=$cmd_get get_hits=$get_hits"
exit 0
else
echo "CRITICAL - hit rate is $hit_rate% | hit_rate=$hit_rate cmd_get=$cmd_get get_hits=$get_hits"
exit 2
fi

------上面脚本必须用一次grep -o 在awk 只显示需要的内容,如果没有可能会应为换行的问题报错:
(standard_in) 1: illegal character: ^M

3、测试命中率大于80%为正常为例;
eg:
sh check_memcache 80

root@ip-10-250-114-95:/liang# sh check_memcache 80
OK - hit rate is 99 | hit_rate=99; cmd_get=142547; get_hits=141880

---以上证明命中率99%,即状态为OK.

取值法二:或者不用check_tcp检查 用telnet也可以取到值:

eg:
[root@darkyin coreseek-3.2.14]# (echo "stats";sleep 0.5) | telnet 192.168.1.249 11211 2>/dev/null | grep "STAT $item\b"
STAT pid 2224
STAT uptime 967296
STAT time 1431672792
STAT version 1.4.15
STAT libevent 2.0.20-stable
STAT pointer_size 64
STAT rusage_user 16.844439
STAT rusage_system 19.094097
STAT curr_connections 10
STAT total_connections 27188
STAT connection_structures 34
STAT reserved_fds 20
STAT cmd_get 165423
STAT cmd_set 17104
STAT cmd_flush 0
STAT cmd_touch 0
STAT get_hits 150123
STAT get_misses 15300
STAT delete_misses 1560
STAT delete_hits 138
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 50415223
STAT bytes_written 6965258245
STAT limit_maxbytes 268435456
STAT accepting_conns 1
STAT listen_disabled_num 0
STAT threads 4
STAT conn_yields 0
STAT hash_power_level 16
STAT hash_bytes 524288
STAT hash_is_expanding 0
STAT bytes 4652850
STAT curr_items 1017
STAT total_items 17104
STAT expired_unfetched 3457
STAT evicted_unfetched 0
STAT evictions 0
STAT reclaimed 5477

本文出自 “茬田野上” 博客,请务必保留此出处http://darkyin.blog.51cto.com/6260426/1302193
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: