Memcache学习笔记一

过年期间,看了一些Memcache的资料,整理了一个PPT。

Memcached分析

View more presentations from Wonwang.

收获最大的部分,我觉得是在应用上如何更好的对缓存进行使用和处理,来解决 Cache Stamples 的问题。通常只进行一次缓存判断的逻辑,在应对高并发的访问时,经常会引起问题,因此增加锁机制和Mutex就非常必要。

Memcache服务器的状态

如果有人反映memcache链接比较慢的时候,可以按照下面的步骤来进行查看

首先检查Memcached服务器组的 listen_disabled_num 参数,这个参数表明了这台服务器曾经达到最大连接的次数,这个数字当然是越小越好,如果这个数字不断快速的增长,我们就该小心我们的服务了。

accepting_conns 这个参数与上一个有关,我们可以简单的查看这个值是 1 或者 0 来判断服务器是否达到过最大连接。

curr_connections 这个状态显示了当前连接到服务器上的数量,注意这个数字不要超过设置的最大值

limit_maxbytes 当前服务器可以使用的最大内存数量,实际上服务器中的 memcached 进程占用的内存会比这个数字大一些

cmd_flush 服务器上执行了 flush_all 的次数

evictions 这个数字表示一些项目还没有过期,但是因为 slab 中已经没有可用的空间,导致最后根据LRU算法被剔除的情况

一些统计数值

缓存命中率:计算公式 get_hits / ( get_hits + get_misses ) 服务器的缓存命中率,越高越好

另外,可以使用下面这个脚本进行服务器的测试

测试脚本:http://consoleninja.net/code/memcached/mc_conn_tester.pl

利用Cacti监控Memcached

Cacti作为一套成熟的系统,可以用来绘制与Memcached相关的各种统计图表。下面提供的插件可以结合Cacti进行绘图,但是需要下面几个要求:1、系统已经安装了Cacti;2、已经安装好了Memcached;3、Cacti的机器上同时安装了Python;4、安装了Python的Memcached客户端。

下面是一些截图

下载Cacti取数据的脚本:Cacti-memcached-1.0.tar.gz

安装配置过程: 1、下载Python的客户端API,python-memcached-1.47.tar.gz 2、解压后安装

tar –xvzf python-memcached-1.47.tar.gz python setup.py install

3、下载Cacti的模板,Cacti-memcached-1.0.tar.gz

4、解压缩,然后将 memcached.py 拷贝到 cacti 的 /scripts/ 目录中 5、为了确认这个脚本是否能够正常运行,可以运行脚本进行测试

python memcached.py hostname

正常情况下,我们可以取得所连接服务器的一些数据。

6、登录进入Cacti系统,选择导入模板,选择我们下载的模板中的 cacti_memcached_host_template.xml 文件,其它选项保持默认,进行保存

此时,我们在Cacti系统中引入模板就已经完成了,你会看到成功的提示,并且有一些相关的信息显式或者一些报错的界面。如果没有成功,可以参考这里的帮助

7、系统的配置和使用

安装完成后,我们可以在新建Device时看到对应的模板,如下图

对于已经存在的Device,也可以在Associated Graph Templates中选择对应的模板

8、之后就可以在Graph中看到对应图表了。

Technorati 标签: Memcache,Linux,缓存,Key-value

参考资料 1、Memcached Wiki Timeouts 2、利用Cacti监控Memcached 3、Memcached数据被踢现象分析(evicitions>0)

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏大魏分享(微信公众号:david-share)

对,俺差的是安全! | 从开发角度看应用架构18

在Gartner定义的“第三平台”盛行的年代,html5大行其道。所以http方式访问的应用很多。因此,谈到应用的安全,我们先要了解http的几种认证方式。

971
来自专栏Django中文社区

搭建开发环境

本教程使用的开发环境 本教程写作时开发环境的系统平台为 Windows 10 (64 位),Python 版本为 3.5.2 (64 位),Django 版本为...

3805
来自专栏Java开发

INTELLIJ IDEA插件安装(阿里的编码约束)

在项目中,有的小伙伴第一次使用IDEA进行开发,想装开发插件(编码约束,lombk等)不知如何下手,下面小编就以安装Alibaba Java Coding Gu...

1692
来自专栏君赏技术博客

我的自动化构建之路之 Jenkins+Fastlane+Github内网测试

可能看到这一篇文章很多人认为 Jenkins就可以实现自动化打包,并且 Fastlane配置 完毕之后打包更加的轻松。干嘛还搞在一起,这不是重复了吗。

3052
来自专栏java一日一条

在应用中嵌入Tomcat

很多 Java web 应用和服务,包括开源的和商业化的(比如 Alfresco, iRise, Confluence等),都倾向于将 Apache Tomca...

2012
来自专栏运维咖啡吧

记一次诡异的故障排查经历

管理员通过Jenkins调用“发布程序(代号varian,以下简称varian)”,发布程序会进行一系列的初始化操作,完成后生成Docker镜像上传到Docke...

1072

Go微服务,第10部分:集中式日志记录

在Go微服务博客系列的这一部分中,我们将介绍基于Logrus,Docker Gelf日志驱动程序和“作为服务的日志记录” Loggly服务的Go微服务的日志记录...

4484
来自专栏技术博文

PHP连接MySQL数据库的三种方式(mysql、mysqli、pdo)

PHP与MySQL的连接有三种API接口,分别是:PHP的MySQL扩展 、PHP的mysqli扩展 、PHP数据对象(PDO) ,下面针对以上三种连接方式做下...

6654
来自专栏企鹅号快讯

代码注入技术Process Doppelgänging利用介绍

0x00 前言 在最近的BlackHat Europe 2017,Tal Liberman和Eugene Kogan介绍了一种新的代码注入技术——Process...

2919
来自专栏乐沙弥的世界

Linux 主机网络接入配置

网络配置是我们在安装好操作系统之后,需要解决的第一步。现时代没有接入网络的主机已然等同于一堆废铁。在网络配置的过程中,通常我们需要配置本机IP地址,缺省网关,D...

3560

扫码关注云+社区

领取腾讯云代金券