memcached常用的stats命令查询memcache运行状态

Web服务器 欲思 2评论

telnet到memcached服务器后有很多的命令可以使用,除了大家熟知的add、get、set、incr、decr、replace、delete等赋值命令外,还有一系列的获取服务器信息的命令,这部分命令都是以stats开头的。

memcached常用的stats命令查询memcache运行状态

1、stats :显示服务器信息、统计数据等

stats
STAT pid 13375
STAT uptime 2147
STAT time 1208694456
STAT version 1.2.5
STAT pointer_size 32
STAT rusage_user 0.020000
STAT rusage_system 0.010000
STAT curr_items 0
STAT total_items 0
STAT bytes 0
STAT curr_connections 2
STAT total_connections 3
STAT connection_structures 3
STAT cmd_get 0
STAT cmd_set 0
STAT get_hits 0
STAT get_misses 0
STAT evictions 0
STAT bytes_read 7
STAT bytes_written 0
STAT limit_maxbytes 67108864
STAT threads 1
END

pid:守护进程的id

uptime:进程已经运行的时间,以秒为单位

time:当前的unix时间

version:服务器版本

pointer_size:操作系统默认的指针长度

rusage_user:进程累计的user time(秒:毫秒)

rusage_system:进程累计的system time(秒:毫秒)

curr_items:当前的items数量

total_items:进程启动开始存储过的items数量

bytes:当前用于存储items的byte数量

curr_connections:打开的连接数量

total_connections:进程启动开始打开过的连接数量

connection_structures:服务分配的连接结构数量

cmd_get:提取请求次数

cmd_set:存储请求次数

get_hits:get命中次数

get_misses:get未命中次数

evictions:为了添加新item而回收的合法item数量

bytes_read:服务从network读取的byte数量

bytes_written:服务写入network的byte数量

limit_maxbytes:服务可使用的用于存储数据的最大值

threads:被请求的工作线程数量

2、stats reset  清空统计数据

stats reset
RESET

stats
STAT pid 2305
STAT uptime 40596
STAT time 1294906749
STAT version 1.2.6
STAT pointer_size 64
STAT rusage_user 1.671745
STAT rusage_system 2.803573
STAT curr_items 86642
STAT total_items 0
STAT bytes 29865212
STAT curr_connections 14
STAT total_connections 0
STAT connection_structures 16
STAT cmd_get 0
STAT cmd_set 0
STAT get_hits 0
STAT get_misses 0
STAT evictions 0
STAT bytes_read 9
STAT bytes_written 14
STAT limit_maxbytes 67108864
STAT threads 4
END

3、stats malloc 显示内存分配数据

stats malloc
STAT arena_size 708608
STAT free_chunks 4
STAT fastbin_blocks 0
STAT mmapped_regions 65
STAT mmapped_space 66752512
STAT max_total_alloc 0
STAT fastbin_space 0
STAT total_alloc 614032
STAT total_free 94576
STAT releasable_space 94272
END

4、stats maps  是把/proc/self/maps的数据显示出来。

如果远程攻击者连接到了memcached的TCP端口(默认11211)并发布了stats maps命令,Memcached就会直接将/proc/self/maps的输出管道传输给客户端。这可能导致泄漏所分配内存区域的地址。

stats maps
00365000-00378000 r-xp 00000000 08:01 149004     /lib/libnsl-2.3.4.so
00378000-00379000 r--p 00012000 08:01 149004     /lib/libnsl-2.3.4.so
00379000-0037a000 rw-p 00013000 08:01 149004     /lib/libnsl-2.3.4.so
0037a000-0037c000 rw-p 0037a000 00:00 0
0070c000-00722000 r-xp 00000000 08:01 147620     /lib/ld-2.3.4.so
00722000-00723000 r--p 00015000 08:01 147620     /lib/ld-2.3.4.so
00723000-00724000 rw-p 00016000 08:01 147620     /lib/ld-2.3.4.so
00726000-0084c000 r-xp 00000000 08:01 147621     /lib/tls/libc-2.3.4.so
0084c000-0084e000 r--p 00125000 08:01 147621     /lib/tls/libc-2.3.4.so
0084e000-00850000 rw-p 00127000 08:01 147621     /lib/tls/libc-2.3.4.so
00850000-00852000 rw-p 00850000 00:00 0
00891000-0089f000 r-xp 00000000 08:01 147624     /lib/tls/libpthread-2.3.4.so
0089f000-008a0000 r--p 0000d000 08:01 147624     /lib/tls/libpthread-2.3.4.so
008a0000-008a1000 rw-p 0000e000 08:01 147624     /lib/tls/libpthread-2.3.4.so
008a1000-008a3000 rw-p 008a1000 00:00 0
008a5000-008b4000 r-xp 00000000 08:01 147628     /lib/libresolv-2.3.4.so
008b4000-008b5000 r--p 0000f000 08:01 147628     /lib/libresolv-2.3.4.so
008b5000-008b6000 rw-p 00010000 08:01 147628     /lib/libresolv-2.3.4.so
008b6000-008b8000 rw-p 008b6000 00:00 0
009c7000-009cf000 r-xp 00000000 08:01 149005     /lib/tls/librt-2.3.4.so
009cf000-009d0000 r--p 00007000 08:01 149005     /lib/tls/librt-2.3.4.so
009d0000-009d1000 rw-p 00008000 08:01 149005     /lib/tls/librt-2.3.4.so
009d1000-009db000 rw-p 009d1000 00:00 0
00d28000-00d3b000 r-xp 00000000 08:02 688822     /usr/local/sinawap/lib/libevent-1.4.so.2.0.0
00d3b000-00d3c000 rw-p 00013000 08:02 688822     /usr/local/sinawap/lib/libevent-1.4.so.2.0.0
00d3c000-00d3d000 rw-p 00d3c000 00:00 0
08048000-08052000 r-xp 00000000 08:02 905179     /usr/local/sinawap/bin/memcached
08052000-08053000 rw-p 0000a000 08:02 905179     /usr/local/sinawap/bin/memcached
08053000-08056000 rw-p 08053000 00:00 0
08499000-084ba000 rw-p 08499000 00:00 0
b7f64000-b7fa8000 rw-p b7f64000 00:00 0
bff9f000-c0000000 rw-p bff9f000 00:00 0
ffffe000-fffff000 r-xp 00000000 00:00 0

5、stats size

6、stats slabs

详细介绍stats slabs

STAT 1:chunk_size 88
STAT 1:chunks_per_page 11915
STAT 1:total_pages 1
STAT 1:total_chunks 11915
STAT 1:used_chunks 11915
STAT 1:free_chunks 0
STAT 1:free_chunks_end 11914
STAT active_slabs 1
STAT total_malloced 1048520
END

chunk_size:每个chunk(块)使用的空间数量,一个item存储到一个近似大小的chunk中

chunk_per_page:每page存在的chunk数量,slabs是按页(page)分配的,一页一般为1M,每个slab(也即每页)又划分为若干chunk,这里涉及到memcached的内存管理,这里不多解释,可以参考后面的附文。

total_pages:该slabclass分配到的page数量

total_chunks:该slabclass拥有的chunk数量

used_chunks:已经分配给item的chunk数量(不一定已经装填了item)

free_chunks:尚未分配给item的chunk数量,或者由delete释放的chunk

free_chunks_end:slabclass中最后一页的自由块数量,即该slabclass尚有多少自由块可以用来装填item

active_slabs:已分配的slabclass数量

total_malloced:已分配给slab page的内存数量

7、stats items 显示各个slab中item的数目和最老item的年龄(最后一次访问距离现在的秒数)stats detail [on|off|dump]

设置或者显示详细操作记录

参数为on,打开详细操作记录

参数为off,关闭详细操作记录

参数为dump,显示详细操作记录(每一个键值get、set、hit、del的次数)

stats items dump
STAT items:1:number 7
STAT items:1:age 23124
STAT items:1:evicted 0
STAT items:1:outofmemory 0
.........
END

8、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的大小、数目、使用情况等

9、stats detail dump  ( stats detail  [on|off|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

转载请注明:欲思博客 » memcached常用的stats命令查询memcache运行状态

如果你觉得这篇文章或者我分享的主题对你有帮助,请支持我继续更新网站和主题 !捐赠本站
喜欢 (8)or分享 (0)
发表我的评论
取消评论
表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
(2)个小伙伴在吐槽
  1. 恩。收集的一些常用命令。省的忘记了。
    欲思博客2014-05-12 13:19 回复
  2. 这个很专业了