利用memaslap对Memcached进行性能测试

举报
鲲鹏小玩家 发表于 2020/03/30 17:10:01 2020/03/30
【摘要】 本文主要介绍Memcached,Libmemcached和memaslap,然后利用测试工具memaslap对Memcached进行性能测试。 MemcachedMemcached是一种基于libevent的通用的高性能分布式内存对象缓存系统。 它通常用于通过在内存中缓存数据和对象来加速对以动态数据库驱动的网站的访问。 Memcached是基于修订的BSD许可证授权的开源软件。memcach...

本文主要介绍MemcachedLibmemcachedmemaslap,然后利用测试工具memaslapMemcached进行性能测试。

 

Memcached

Memcached是一种基于libevent的通用的高性能分布式内存对象缓存系统。 它通常用于通过在内存中缓存数据和对象来加速对以动态数据库驱动的网站的访问。 Memcached是基于修订的BSD许可证授权的开源软件。

memcached是一个高性能的内存缓存对象系统,其实质为一个键值对的hashmap索引,其事件处理和网络通信均是基于libeventmemcached区别于libevent,因为memcached是一个运行程序,不需要编译成动态连接库,供其他程序调用。memcached通常作为C/S模型中的S,也就是服务器端,客户端通过命令缓存数据。

基本特点:

a.   协议简单:使用基于文本行的协议,二进制协议使用比较少。

b.   基于内存存储:数据存储在内存中,所以读取速度很快。

c.   事件处理:基于libevent开发,所以可以应对C10问题。

d.   不互相通信的分布式:多台memcached服务器之间不互相通信,由客户端实现分布式算法,所以通常客户端使用一致性hash策略,通常拥有快隔离,慢恢复的特性。

 

Libmemcached

memcached通常以服务器的形式运行,虽然称memcached是分布式数据库,但是其服务端本身不支持分布式业务,这就需要客户端自己实现分布管理以及内存池功能。Libmemcached是一个开源的Memcached客户端库,其内部实现了分布式管理、内存池等功能。通过API的形式提供出来,使用程序员可以专心上层业务逻辑,避免底层与memcached交互的细节,所以Libmemcached编译,安装之后就会以动态库的方式提供出来给程序员调用。注意链表的时候必须指定-lmemcached

Libmemcached特性:

a.   异步和同步传输支持。

b.   支持一致性hash分布式算法。

c.   可调哈希算法来匹配密钥。

d.   访问大对象支持。

e.   本地复制。

f.   提供了一些管理memcached服务器的工具命令

 

memaslap

memaslapmemcache自带的memslap工具功能更强大的测试工具。memaslaplibmemcached的一个组件,因此需要编译安装。首先需要下载libmemcached

 

利用memaslapMemcached进行性能测试

1、  安装准备

华为云购买一台鲲鹏服务器(wrkTomcat部署在同一台鲲鹏服务器上,当然也可以部署在不同的服务器上)

本文以云服务器KC1实例搭建,云服务器配置如表1-1所示。

1-1 云服务器配置

项目

说明

规格

kc1.large.2 | 2vCPUs | 4GB

磁盘

系统盘:高IO40GB

操作系统要求如表1-2所示。

1-2 操作系统要求

项目

说明

下载地址

CentOS

7.6

在公共镜像中已提供。

Kernel

4.14.0-115

在公共镜像中已提供。

 

2、  部署memcached服务器

鲲鹏社区软件栈已经有部署文档,请参考

https://www.huaweicloud.com/kunpeng/software/memcached.html

3、  启动memcached服务

./memcached -d -m 1024 -u root
ps –ef | grep memcached

说明:

相关解释如下:

-d选项是启动一个守护进程,

-m是分配给Memcache使用的内存数量,单位是MB,这里是1024MB

-u是运行Memcache的用户,如果当前为 root 的话,需要使用此参数指定用户。

image.png

 

4、  安装memaslap

memaslapmemcache自带的memslap工具功能更强大的测试工具。memaslap libmemcached的一个组件,因此需要编译安装。首先需要下载libmemcached

1)         安装步骤如下:

wget https://launchpad.net/libmemcached/1.0/1.0.18/+download/libmemcached-1.0.18.tar.gz
tar -zxvf libmemcached-1.0.18.tar.gz
cd libmemcached-1.0.18
./configure -prefix=/usr/local/libmemcached --with-memcached --enable-memaslap
make  
make install


2)         如果安装过程中会报错,则通过如下解决

    image.png

解决办法:

Try going into the Makefile and adding '-L/lib64 -lpthread' to the variable LDFLAGS.

LDFLAGS变量位于Makefile文件2937

然后make & make install即可

 

5、  memaslap测试memcached

输入如下命令进行测试:

/usr/local/libmemcached/bin/memaslap -s 127.0.0.1:11211 -t 60s -T 8

说明:

-s: Server127.0.0.1:11211  memcached部署在本地,端口为11211

-t: 执行60s

-T 8个线程

返回结果:

image.png

 


【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。