memcached提供一系列的命令进行优化的查看,方便我们调整我们的存储策略,查看我们的使用率,内存的使用率以及浪费情况。常用的命令有stats、stats settings、stats items、stats slabs

1.1.1. memcached  stats命令

memcached  stats命令主要是查询服务器的运行状态和其他内部数据,包含如下这些:

1:pid :服务器进程ID

2:uptime :服务器运行时间,单位秒

3:time:服务器当前的UNIX 时间

4:version :服务器的版本号

5:libevent:libevent的版本

6:pointer_size :服务器操作系统位数

7:rusage_user:该进程累计的用户时间

8:rusage_system:该进程累计的系统时间

9:curr_connections :当前连接数

10:total_connections :服务器启动后总连接数

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

12:reserved_fds:内部使用的misc fds 数量

13:cmd_get :获取请求数量

14:get_hits :获取成功的总次数,命中次数

15:get_misses :获取失败的总次数

16:cmd_set :存储请求数量

17:cmd_flush :flush请求的数量

18:cmd_touch:touch请求的数量

19:delete_misses :删除失败次数

20:delete_hits :删除命中

21:incr_misses :递增失败次数

22:incr_hits :递增命中次数

23:decr_misses :递减命中次数

24:decr_hits :递减失败次数

25:cas_misses :Cas 原子设置操作失败次数

26:cas_hits :Cas 命中次数

27:cas_badval :Cas 操作找到key, 但是版本过期,没有设置成功

28:touch_hits:touch命中次数

29:touch_misses:touch失败次数

30:auth_cmds :认证次数(包括成功和失败)

31:auth_errors :认证失败次数

32:bytes :已用缓存空间

33:bytes_read :总共获取的数据量

34:bytes_written :总写入数量数

35:limit_maxbytes :总允许写入的数据量,和分配的内存有关

36:accepting_conns:允许的总连接数

37:listen_disabled_num :监听失败的次数

38:threads:需要的工作线程数

39:hash_bytes:当前使用的Hash table容量大小

40:hash_is_expanding:指定Hash table是否自动增长

41:malloc_fails:malloc内存分配失败的次数

42:curr_items :当前缓存item 数量

43:total_items :从服务启动后,总的存储缓存item 数量

44:evictions :通过删除item 释放内存的次数

这些数据隐含的几个基本关系:

rusage_user、rusage_system:这两个命令可以分析cpu是否过高。

curr_connections 、total_connections :分析连接是否过多

cmd_get 、get_hits 、get_misses :命中率

bytes 、bytes_read 、bytes_written :分析字节数流量

curr_items 、total_items 、evictions :分析对象LRU频率

1:缓存命中率= get_hits/cmd_get * 100%

2:get_misses的数字加上get_hits应该等于cmd_get

stats sizes命令:输出所有Item的大小和个数,注意:会锁定服务,暂停处理请求(建议不要使用)

flush_all命令:使内存中所有的item失效。加入参数则表示在N秒后失效。这个操作并不

会真的释放内存空间,而是标志所有的item为失效

version命令:查看版本

1.1.2. memcached  stats settings命令

maxbytes:最大字节数限制,0无限制

maxconns:允许最大连接数

tcpport:TCP端口

udpport:UDP端口

verbosity:日志0=none,1=som,2=lots

oldest:最老对象过期时间

evictions:on/off,是否禁用LRU

domain_socket:socket的domain

umask:创建Socket时的umask

growth_factor:增长因子

chunk_size:key+value+flags大小

num_threads:线程数,可以通过-t设置,默认4

stat_key_prefix:stats分隔符

detail_enabled:yes/no,显示stats细节信息

reqs_per_event:最大IO吞吐量(每event)

cas_enabled:yes/no,是否启用CAS,-C禁用

tcp_backlog:TCP监控日志

auth_enabled_sasl:yes/no,是否启用SASL验证

stats settings 如下图所示:

1.1.3. memcached  stats items数据项统计

number:该slab中对象数,不包含过期对象

age:LRU队列中最老对象的过期时间

evicted:LRU释放对象数

evicted_nonzero:设置了非0时间的LRU释放对象数

evicted_time:最后一次LRU秒数,监控频率

outofmemory:不能存储对象次数,使用-M会报错

tailrepairs:修复slabs次数

reclaimed:使用过期对象空间存储对象次数

stats items如下图所示:

1.1.4. stats slabs区块统计

chunk_size:chunk大小,byte

chunks_per_page:每个page的chunk数量

total_pages:page数量

total_chunks:chunk数量*page数量

get_hits:get命中数

cmd_set:set数

delete_hits:delete命中数

incr_hits:incr命中数

decr_hits:decr命中数

cas_hits:cas命中数

cas_badval:cas数据类型错误数

used_chunks:已被分配的chunk数

free_chunks: 过期数据空出的chunk里还没有被使用的chunk数

free_chunks_end:新分配的但是还没有被使用的chunk数

mem_requested:请求存储的字节数

active_slabs:slab数量

total_malloced:总内存数量

被浪费内存数=((total_chunks或者used_chunks) * chunk_size) - mem_requested,如

果太大,需要调整factor

演示:

memcached实战系列(四)memcached stats命令 memcached优化的更多相关文章

  1. WCF开发实战系列四:使用Windows服务发布WCF服务

    WCF开发实战系列四:使用Windows服务发布WCF服务 (原创:灰灰虫的家http://hi.baidu.com/grayworm) 上一篇文章中我们通过编写的控制台程序或WinForm程序来为本 ...

  2. memcached实战系列(三)memcached命令使用

    memcached命令的使用,在这里我们最好了解一下命令的含义,对命令有一个大致的了解,在了解的基础上进行使用.这里的命名是常用的crud命令的演示. 1.1.1. memcached命令的格式 标准 ...

  3. memcached实战系列(二)memcached参数以及启动

    memcached启动的时候配置的参数也比较多.在这里我就做一个汇总,需要的时候直接查看参数以及参数的含义. 下面是参数的定义以及解释. 1.1.1. 参数说明 -d选项是启动一个守护进程 -m是分配 ...

  4. ElasticSearch实战系列四: ElasticSearch理论知识介绍

    前言 在前几篇关于ElasticSearch的文章中,简单的讲了下有关ElasticSearch的一些使用,这篇文章讲一下有关 ElasticSearch的一些理论知识以及自己的一些见解. 虽然本人是 ...

  5. memcached实战系列(五)Memcached: List all keys 查询所有的key

    memcached可能当时设计的时候就把它定位为内存性的kv结构的缓存系统.所以没有持久化到磁盘的命令,也没有查看所有key的值得命令.可能觉得没必要吧,你要是缓存1个G内存的数据,自己都头大,还敢看 ...

  6. memcached实战系列(一)memcached安装

    下载并安装Memcached服务器端 我用的是cenos6.5 64位系统. libevent是个程序库,它将Linux的epoll.BSD类操作系统的kqueue等事件处理功能封装成统一的接口,具有 ...

  7. memcached实战系列(七)理解Memcached的数据过期方式、新建过程、查找过程

    1.1.1. 新建Item分配内存过程 1:快速定位slab classid,先计算Item长度 key键长+flag+suffix(16字节)+value值长+结构大小(32字节),如90byte ...

  8. memcached实战系列(六)理解Memcached的数据存储方式

    Memcached的数据存储方式被称为Slab Allocator,其基本方式是: 1:先把内存分成很多个Slab,这个大小是预先规定好的,以解决内存碎片的问题.启动参数的时候配置进去的不懂得可以参考 ...

  9. shiro实战系列(四)之配置

    Shiro之配置 Shiro 被设计成能够在任何环境下工作,从最简单的命令行应用程序到最大的的企业群集应用.由于环境的多样性,使得许多配置机制适用于它的配置. 一. 许多配置选项 Shiro的Secu ...

随机推荐

  1. [USACO13DEC]假期计划(黄金)Vacation Planning (gold)

    题目翻译不好,这里给出一份 题目背景 Awson是某国际学校信竞组的一只大佬.由于他太大佬了,于是干脆放弃了考前最后的集训,开车(他可是老司机)去度假.离开学校前,他打开地图,打算做些规划. 题目描述 ...

  2. ●codeforces 553E Kyoya and Train

    题链: http://codeforces.com/problemset/problem/623/E 题解: FFT,DP 题意: 一个有向图,给出每条边的起点u,终点v,费用c,以及花费每种时间的概 ...

  3. 【BZOJ3110】【ZJOI2013】k大数查询

    原题传送门 题意简析 给定一个区间,可以在这个区间上每个整数点插入若干个数(这些数数值可以重复)你需要支持2种操作: 1)在[a,b]间所有整数点插入c 2)查询[a,b]内第c大的数 解题思路 树套 ...

  4. NOIP2014-5-24模拟赛

    Problem 1 护花(flower.cpp/c/pas) [题目描述] 约翰留下他的N(N<=100000)只奶牛上山采木.他离开的时候,她们像往常一样悠闲地在草场里吃草.可是,当他回来的时 ...

  5. Codeforces Round #403 (Div. 1, based on Technocup 2017 Finals)

    Div1单场我从来就没上过分,这场又剧毒,半天才打出B,C挂了好几次最后还FST了,回紫了. AC:AB Rank:340 Rating:2204-71->2133 Div2.B.The Mee ...

  6. Python virtualenv 使用总结篇

    一.virtualenv的安装 1.使用pip全局安装virtualenv,建议使用pip 1.3或更高版本,在1.3之前,pip没有通过SSL从PYPI下载. $ [sudo] pip instal ...

  7. URI与URL

    为了区分URI与URL,我们要引入URN URI = Universal Resource Identifier 统一资源标志符URL = Universal Resource Locator 统一资 ...

  8. AspNetCoreApi 跨域处理

    AspNetCoreApi 跨域处理 如果咱们有处理过MV5 跨域问题这个问题也不大. (1)为什么会出现跨域问题:  浏览器安全限制了前端脚本跨站点的访问资源,所以在调用WebApi 接口时不能成功 ...

  9. js error

    0x800a0259 - JavaScript 运行时错误: 未知的运行时错误 <p id="navigatorInfo"></p> var txt = & ...

  10. mongo索引

    索引自动创建和手工创建 db.stu.drop(); db.stu.insert({"name":"张三","sex":"男&qu ...