查看memcached的内部状态

memcached有个名为stats的命令,使用它可以获得各种各样的信息。 执行命令的方法很多,用telnet最为简单:

$ telnet 主机名 端口号

连接到memcached之后,输入stats再按回车,即可获得包括资源利用率在内的各种信息。 此外,输入”stats slabs”或”stats items”还可以获得关于缓存记录的信息。 结束程序请输入quit。下面查看slabs的适用情况

stats slabs

结果如下:

查看memcached的内部状态_查看memcached的内部状态

属性说明,数据操作(get、set等)相关的属性就不说明了:

chunk_size当前slab chunk的大小
chunk_per_page每个page能够存放的chunk数
total_pages分配给当前slab的page总数
total_chunks当前slab最多能够存放的chunk数,应该等于chunck_per_page * total_page
used_chunks已经被占用的chunks总数
free_chunks过期数据空出的chunk里还没有被使用的chunk数
free_chunks_end新分配的但是还没有被使用的chunk数

used_chunks, free_chunks, free_chunks_end这三个属性需要特别的关注,这三个属性可以反映出内存的适用情况。used_chunks就是字面的意思,已经使用的chunk数;

free_chunks曾经被使用过但是因为过期而被回收的chunk数;

free_chunks_end是page中从来没有被使用过的chunk数。

如果free_chunks_end的数过大,表明这部分slab内存不能有效的利用;如果过小表明很快就不够用了;两种情况都需要做调整来使内存达到合理的利用。