码迷,mamicode.com
首页 > 系统相关 > 详细

memcached性能测试之Twemperf

时间:2018-07-18 20:27:02      阅读:482      评论:0      收藏:0      [点我收藏+]

标签:arc   速度   key   tag   网址   play   output   端口   连接数   

Twemperf又名mcperf,是一款memcached的性能测试工具。Mcperf就像httperf,但它基于memcached的协议,它使用memcached的ASCII协议并且能够快速的产生大量memcached连接和请求。该工具主要用于memcached性能测试,模拟大并发set、get等的操作,mcperf只能运行在unix/linux环境下。

一、下载

Twemperf对应的github下载地址:https://github.com/twitter/twemperf

二、安装

下载后,传到任意一台服务器上(注:只能在linux上运行)解压安装。

tar zxvf mcperf-0.1.1.tar.gz
cd mcperf-0.1.1
sudo autoreconf -fvi  //然后就生成configure文件啦。。。。
CFLAGS="-ggdb3 -O0" ./configure --enable-debug
sudo make
sudo make install

三、运行

1、首先运行memcached(默认端口是11211,若运行memcached的时候自己指定了端口号,下面执行Twemperf工具命令时注意相应的指定IP和端口,因为Twemperf工具默认是11211端口哦)。

./memcached -d -m 256 -l 10.142.90.152 -u root -p 8718 -vv
参数名称	作用
-d	以守护进程方式启动。如果该参数没有指定,当按ctrl+c命令结束,memcache自动关闭
-m	分配给memcache使用的最大内存数 单位是m,默认是64m
-u	指定运行memcache的用户
-l:	指定监听的ip地址
-p	指定监听的tcp端口号,可以通过-u指定udp端口.默认是11211
-c	最大并发连接数
-P	报错进程id的文件

2、twemperf工具使用说明

安装完成后在$twemperf/src下面有mcperf命令,使用参数如下说明:

技术分享图片

其中文解释大致如下:

Options:
-h, –help            : 显示帮助
-V, –version         : 显示版本
-v, –verbosity=N     : 设置日志级别(默认为5,最小0,最大11)
-o, –output=S        : 设置日志文件(默认输出标准错误)
-s, –server=S        : 设置需要测试的服务器(默认是本机)
-p, –port=N          : 设置需要测试的端口(默认是11211)
-H, –print-histogram :打印响应时间的柱状图

-t, –timeout=X       : 设置链接和响应的超时时间(默认是0秒)
-l, –linger=N        : 设置TCP连接的断开时间(默认不开启)
-b, –send-buffer=N   : 设置socket发送缓冲区大小(默认是4096字节)
-B, –recv-buffer=N   : 设置socket接收缓冲区大小(默认是16384字节)
-D, –disable-nodelay : 取消TCP延迟

-m, –method=M        : memcached的一些基本操作(例如set、get、add、delete等,默认是set)
-e, –expiry=N        : set the expiry value in sec for generated requests (default: 0 sec)
-q, –use-noreply     : set noreply for generated requests
-P, –prefix=S        : set the prefix of generated keys (default: mcp:)

-c, –client=I/N      : set mcperf instance to be I out of total N instances (default: 0/1)
-n, –num-conns=N     :设置连接数(默认是1)
-N, –num-calls=N     : 设置每一个连接发送的请求数(默认是1)
-r, –conn-rate=R     : 设置每秒建立多少个连接(默认是每秒0个连接,每一个连接在上一个连接断开后创建)
-R, –call-rate=R     : 设置每秒发送的请求数(默认是每秒0个请求,每一个请求在上一个请求响应后发送)
-z, –sizes=R         : 发送存储数据的大小(默认是1个字节)

3、用法示例

官网示例一:创建1000个并发连接,来连接本机的11211端口(此端口是该工具的默认端口),连接创建的速度是每秒1000个,每一个连接发送“set”请求10次(相当于迭代10次),这10次请求在每秒1000的请求的速度下发送,发送的数据大小在(也就是存入到memcached中的value的大小)1~16个字节中正态分布。

命令为:mcperf --linger=0 --timeout=5 --conn-rate=1000 --call-rate=1000 --num-calls=10 --num-conns=1000 --sizes=u1,16

官网示例二:创建100个连接,来连接本机的11211端口,每一个连接在上一个连接断开后创建,每一个连接发送100个“set”请求,每一个请求是在收到上一个请求的响应之后创建,发送的数据大小是1个字节。

命令为:mcperf --linger=0 --call-rate=0 --num-calls=100 --conn-rate=0 --num-conns=100 --sizes=d1

(IP和端口若需要变则通过以下参数设置 --server=10.142.90.152 --port=8718)

示例三:

src/mcperf -s 10.142.90.152 -p 8718 --linger=0 --timeout=5 --conn-rate=1000 --call-rate=1000 --num-calls=10000 --num-conns=100 --sizes=u1024,10240

(--num-conns=100是并发建立100个连接;--num-calls=10000是在一个连接上发1w个请求;--sizes是数据大小在1k和10k之间称正态分布;-conn-rate=1000是1秒钟建立1000个连接)

示例四:

mcperf --linger=0 --timeout=5 --conn-rate=1000 --call-rate=1000 --num-calls=10 --num-conns=1000 --sizes=u1,16 --server=10.142.90.152 --port=8718 --method=set

技术分享图片

结果字段解释

Total:显示总的连接数,总的请求数,总的响应数以及测试所花费的时间。

Connection rate:实际每秒的连接数

Connection time:实际每个连接花费的时间(包括连接时间,set时间等)

Connect time:连接所花费的时间(仅仅是连接所用的时间)

Request rate:每秒的请求数

Request size:每个请求的字节大小

Response rate:每秒的响应数

Response size:响应的字节大小

Response time:响应的时间(单位毫秒)

Response type:stored表示存储的数量,not_stored表示没有存储的数量,exists表示已经存在的数量,not_found表示没有找到的数量

再后面的参数没有较大意义,故此不解释。

四、结论

通过上面的介绍,可以看出,用mcperf测试memcache的方法就是调整不同的参数值来执行命令,经过多次采样后得出结果。

一般重点关注Total、Connection rate、Request rate、Response rate、Response time、Response type、Net I/O这几个指标。

通过多次测试采样,得到以上需要的数据之后可以用excel表格做出一个统计效果来观看。

 

参考网址:

https://my.oschina.net/u/561917/blog/908414

http://blog.51cto.com/332532/1897359

https://yq.aliyun.com/articles/489374?spm=5176.10695662.1996646101.searchclickresult.3df5402f4HMIm0

http://maoyidao.iteye.com/blog/1757613

memcached性能测试之Twemperf

标签:arc   速度   key   tag   网址   play   output   端口   连接数   

原文地址:https://www.cnblogs.com/zhangwuji/p/9331018.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!