查看memcache的状态并监控命中率
一、查看memcache的状态:
如何查看memcache服务器端版本: ./memcached -h
memcache的运行状态可以方便的用 stats 命令显示。
首先用telnet 127.0.0.1 11211这样的命令连接上memcache,然后直接输入stats就可以得到当前memcache的状态。
这些状态的说明如下:
pid | memcache服务器的进程ID |
uptime | 服务器已经运行的秒数 |
time | 服务器当前的unix时间戳 |
version | memcache版本 |
pointer_size | 当前操作系统的指针大小(32位系统一般是32bit) |
rusage_user | 进程的累计用户时间 |
rusage_system | 进程的累计系统时间 |
curr_items | 服务器当前存储的items数量 |
total_items | 从服务器启动以后存储的items总数量 |
bytes | 当前服务器存储items占用的字节数 |
curr_connections | 当前打开着的连接数 |
total_connections | 从服务器启动以后曾经打开过的连接数 |
connection_structures | 服务器分配的连接构造数 |
cmd_get | get命令(获取)总请求次数 |
cmd_set | set命令(保存)总请求次数 |
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
转载于:https://blog.51cto.com/darkyin/1302193