memcached监控

Memcached性能测试技术标准介绍

主体监控思路虽大致相同,但细节仍然需要认真把握, 对于团队来讲,则进入到了一个盲区,为了走出来,拨云见日,这几天我们对M emcached 的相关技术进行了补课。

1 先来讲讲大概的结构:

M emcached 默认情况下采用了名为Slab Allocator 的机制分配 , 将分配的内存分割成各种尺寸的块(chunk),并把尺寸相同的块分成组(class )

M emcached 会 根据收到的数据的大小 ,选择合适的 class与chunks,并 将数据缓存于其中 。从上图我们可以看到, 由于分配的是特定长度的内存,因此 就存在了 无法有效利用内存 的情况 。例如,将100 字节的数据缓存到128 字节的chunk 中,剩余的28字节就浪费了 。

结构大致了解到这里就差不多了,再往下讲起来会比较晦涩。

2 现在来看看 删除机制

主要有两点

(1).     惰性超时机制( Lazy Expiration )

M emcached 不 主动 监视记录是否过期,而是在get 时 才 查看记录的时间戳,检查记录是否过期。 这样有一个好处 。不会在过期监视上耗费CPU 时间 。

(2).     最近最少使用删除 机制 ( LRU )

M emcached 会优先使用已超时的记录的空间,当 M emcached 的内存空间不足时(无法从class 获取到新的空间时),就从最近未被使用的记录中搜索,并将其空间分配给新的记录。

因为 Lazy Expiration 、 LRU机制的存在,M emcached 的中的缓存数据并不总是准时删除,存在延迟或提前的可能性,故在测试的过程中不能盲目认定缓存时设定的 expire 时间是完全固定的。

3 再来看看用的最多的stats 命令

如何查看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 当前线程数

Memcached


version:


编号


参数名称


架构分类


分析价值


获取方式


默认值


单位


含义


1


gethits


命中率


关键


监控获取



获取数据成功的次数


2


get_misses


命中率


辅助


监控获取



表示获取数据失败的次数


3


cmd_get


命中率


关键


监控获取



查询请求总数(gethits+get_misses)


4


total_connections


连接数


辅助


启动获取



从memcached服务启动到当前时间,系统打开过的连接的总数


5


connection_structures


连接数


关键


启动获取


1024



服务器分配时的连接构造数


6


curr_connections


连接数


关键


监控获取



当前系统打开的连接数


7


total_malloced


内存占用


关键


监控获取


byte


实际已分配的总内存数


8


limit_maxbytes


内存占用


关键


启动获取


67108864


byte


服务缓允许使用的最大字节数


9


curr_items


LRU


关键


监控获取



当前缓存中存放的对象的数量,不包括目前已经从缓存中删除的对象


10


total_items


LRU


关键


监控获取



从启动到当前时间,系统存储过的所有对象的数量,包括已删除对象


11


evictions


LRU


关键


监控获取



LRU空间用满后需要删除旧的items数

时间: 11-06

memcached监控的相关文章

memcached监控脚本

#!/bin/bash . /etc/init.d/functions if [ `netstat -lntup| grep 11211|wc -l` -lt 1 ];then action "Memcached Serivce is error." /bin/false exit 1 fi echo -e "del key\r\n"| nc 127.0.0.1 11211 &>/dev/null echo -e "set key 0 0 1

一些关于应用级别监控的总结

1. 采集多样化的必要性,通俗的说就是把软硬件的指标放在一起去比较. 有时候我们关注应用的运行状态不仅仅要采集应用的各项指标,有时候还需要了解同一时间该应用运行环境(容器.虚拟机.硬件)的关键指标.然而应用层与其运行环境本身异构,所以采集工具并不相同.比如,我们用openTSDB去监控我的一个web程序,而用ganglia去监控了它所在的服务器,其实我们很多时候更加关注软硬件指标在同一时刻时的表现,切来切去太不直观了.这样问题就来了,两种不同的工具分别展示在不同的页面上,能不能把Web程序的指标

zabbix3.2.0beta2 监控模版

Zabbix监控中用到了一系列模版,nginx后端检测状态 微信告警等一系列常规的服务应用监控 memcached监控模版,可以自己重新定义memcached的端口 http://files.cnblogs.com/files/pyoyw/zbx_memcached_templates.xml tomcat监控模版 http://files.cnblogs.com/files/pyoyw/zbx_export_templates.xml

memcached 数据存储

1.memcached简介.安装自行google 2.memcached监控与数据导出 在memcached源码目录下的scripts目录中一个perl语言的的脚本,可用于对memcache进行一些日常查询与监控 用法如下: #./memcached-tool  Usage: memcached-tool <host[:port]> [mode]        memcached-tool 10.0.0.5:11211 display    # shows slabs        memca

浅解memcache

一.什么是memcache? memcache是一套分布式的高速缓存系统,对于一些大型的.需要频繁访问数据库的网站访问速度提升效果十分显著,是一套开放源代码软件.它通过在内存里维护一个统一的巨大的hash表,它能够用来存储各种格式的数据,包括图像.视频.文件以及数据库检索的结果等.简单的说就是将数据调用到内存中,然后从内存中读取,从而大大提高读取速度.服务器端主程序memcached是以守护程序(监听)方式运行于一个或多个服务器中,随时会接收客户端的连接和操作,最大同时连接数为200.memca

Memcached,redis监控详解

一.监控采集依据: 类似吞吐量,缓存的查询次数,命中率之类的 二.主要监控指标解析,通过stats命令进行采集: Uptime                   ##memcached运行时长 curr_connections          ##当前的连接数 total_connections         ##曾经打开的连接总数 connection_structures     ##服务器分配的连接数 cmd_get                   ##执行get命令总数 cmd

Nagios监控Memcached服务

说到Memcached服务,其实作为运维人员用的还是很多的: 1.在做LB的时候,为了保证同一台机器的请求的session信息防止丢失,我们用Memcached对session做分布式存储. 2.做mysql缓存的时候,我们常常吧mysql查询的结果缓存到Memcached中,这样能够较少php程序与mysql的交互,也能大大减轻数据库的压力. 从以上来看,Memcached其实也是蛮重要的,那么我们更有必要对其进行时刻的监控,接下来引入正题 Nagios监控Memcached服务是否正常运行.

memcached性能监控

1.安装启动memcached 安装: yum -y install memcached 启动: chkconfig --level 2345 memcached on service memcached start 查看状态: memcached-tool  127.0.0.1:11211 stats 重要指标: cmd_get  查询缓存次数 cmd_set 设置key=>value的次数,没找到就写缓存 get_hits 总命中数get_misses总未命中数 配置文件: /etc/sys

Memcached全面解析并使用zabbix进行监控

Memcached是什么? Memcached是一个分布式内存缓存服务器,用于缓存数据库查询结果,减少数据库的访问次数,提高动态web页面的速度及扩展性.Memcached的特征 a.协议简单,Memcached使用简单的文本行协议 b.基于libevent的事件处理 c.内置内存存储方式 d.每个Memcached服务器之间互不通信 e.Memcached使用key-value的方式进行储存 Libevent: Libevent 是一个用C语言编写的.轻量级的开源高性能事件通知库,主要有以下几

memcached学习——memcached的内存分配机制Slab Allocation、内存使用机制LRU、常用监控记录(四)

内存分配机制Slab Allocation 本文参考博客:https://my.oschina.net/bieber/blog/505458 Memcached的内存分配是以slabs为单位的,会根据初始chunk大小.增长因子.存储数据的大小实际划分出多个不同的slabs class,slab class中包含若干个等大小的trunk和一个固定48byte的item信息.trunk是按页存储的,每一页成为一个page(默认1M). 1.slabs.slab class.page三者关系: sl