加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

memcache、redis、tair性能对比测试报告

(2015-01-02 14:52:30)
标签:

memcache

redis

分类: CacheDB/NoSql
memcacheredistair性能对比测试报告

第1章     限制条件

前一周所做的分布缓存技术预言中有包括ehcachememcacheredistair,还包括了基于MongoDB的分布式技术。测试中,考虑到各自功能的差异化特点,其中选择了memcacheredistair功能特性相近的缓存服务器进行性能对比,所以ehcacheMongoDB将不做为本次测试的规范,其原因如下:

1)  Ehcache是组件级别的缓存,要搭建一个独立的缓存服务器,需要用到ehcache server模块,这是个war包,能运行在web 容器中,决定整个缓存服务器性能的好坏因素太多,比如web服务器,集群方式等。跟memcacheredistair没有对比性。

2)  MongoDB是面向文档的数据库,缓存没有可比性。

第2章     测试场景概述

性能测试包括单机环境和分布式环境,主要针对memcacheredistair各缓存服务器在缓存了不同级别的数据下,多个线程并发操作向缓存set/get缓存数据,考虑到网络方面的负载,又将每次set/get操作的缓存数据的大小分为三个不同的级别:1KB,10KB,100KB,通过对上述的条件进行排列,取得以下的测试场景。

第3章     单机环境测试

3.1.      测试场景:

1.       当各缓存的数据库空时,以单线程通过各缓存客户端set调用向服务端推送数据,比较10000操作所消耗的时间,以上动作通过使用不同大小的单个缓存对象重复三次。

2.       在场景一完成的情况下,以单线程通过各缓存客户端get调用向服务端获取数据,比较10000操作所消耗的时间,以上动作通过使用不同大小的单个缓存对象重复三次。

3.       并发200个线程通过缓存软件的客户set调用向服务端推送数据,每个线程完成10000次的操作,比较服务器的tps大小,以上动作通过使用不同大小的单个缓存对象重复三次。

4.       并发200个线程通过缓存软件的客户get调用向服务端获取数据,每个线程完成10000次的操作,比较服务器的tps大小,以上动作通过使用不同的key取不同大小的数据,重复三次。

3.2.      测试环境

 

机器

操作系统

软件版本

数量

Memcached

10.19.90.74:11211

 

1.4.15

1

redis

10.19.90.77: 6379

 

redis-2.6.14

1

tair

Config_server

10.19.90.75:5198

Data_server

10.19.90.76:5191

 

2013-10-24

2

3.3.      测试结果

1.       当各缓存的数据库空时,以单线程通过各缓存客户端set调用向服务端推送数据,比较10000操作所消耗的时间,以上动作通过使用不同大小的单个缓存对象重复三次。

 

缓存服务器

第一次(缓存对象1KB

第二次(缓存对象10KB)

第二次(缓存对象100KB

memcached

905/

390.717/

406/

redis

1179/

451.04/

88/

tair

634/

350/

271/

 

2.       在场景一完成的情况下,以单线程通过各缓存客户端get调用向服务端获取数据,比较10000操作所消耗的时间,以上动作通过使用不同大小的单个缓存对象重复三次。

缓存服务器

第一次(缓存对象1KB

第二次(缓存对象10KB)

第二次(缓存对象100KM

memcache

850/

201/

393/

redis

1260/

452/

96/

tair

285/

285/

230/


3.       在场景一完成的情况下,缓存服务器有数据,并发1000个线程通过缓存软件的客户set调用向服务端推送数据,每个线程完成10000次的操作,比较各服务器的tps大小,以上动作通过使用不同大小的单个缓存对象重复三次。

缓存服务器

第一次(缓存对象1KB

第二次(缓存对象10KB)

第二次(缓存对象100KB

memcache

9510/

7500/

3470/

redis

10835/

5651/

--超时

tair

8857/

3940/

1890/


4.       在场景三完成的情况下,缓存服务器有数据,并发1000个线程通过缓存软件的客户get调用向服务端获取数据,每个线程完成10000次的操作,比较各服务器的tps大小,以上动作通过使用不同的key取不同大小的数据,重复三次。

 

缓存服务器

第一次(缓存对象1KB

第二次(缓存对象10KB)

第二次(缓存对象100KB

memcache

10239/

6758/

3483/

redis

11430/

5392/

983/

tair

9932/

4392/

1012/


第4章     分布式环境测试

4.1.      测试场景:

1.       当各缓存的数据库空时,以单线程通过各缓存客户端set调用向服务端推送数据,比较10000操作所消耗的时间,以上动作通过使用不同大小的单个缓存对象重复三次。

2.       在场景一完成的情况下,以单线程通过各缓存客户端get调用向服务端获取数据,比较10000操作所消耗的时间,以上动作通过使用不同大小的单个缓存对象重复三次。

3.       在场景一完成的情况下,缓存服务器有数据,并发1000个线程通过缓存软件的客户set调用向服务端推送数据,每个线程完成10000次的操作,比较各服务器的tps大小,以上动作通过使用不同大小的单个缓存对象重复三次。

4.       在场景三完成的情况下,缓存服务器有数据,并发1000个线程通过缓存软件的客户get调用向服务端获取数据,每个线程完成10000次的操作,比较各服务器的tps大小,以上动作通过使用不同的key取不同大小的数据,重复三次。

 

4.2.      分布式环境

memcache

机器

操作系统

软件版本

数量

10.19.90.74:11211

 

1.4.15

1

10.19.90.75:11211

 

1.4.15

1

10.19.90.76:11211

 

1.4.15

1

10.19.90.77:11211

 

1.4.15

1

 

tair configserver

机器

操作系统

软件版本

数量

10.19.90.75:5198

 

2013-10-24

1

 

tair dataserver

机器

操作系统

软件版本

数量

10.19.90.74:5191

 

2013-10-24

1

10.19.90.75:5191

 

2013-10-24

1

10.19.90.76:5191

 

2013-10-24

1

10.19.90.77:5191

 

2013-10-24

1

 

redis

机器

操作系统

软件版本

数量

10.19.90.74:6379

 

redis-2.6.14

1

10.19.90.75: 6379

 

redis-2.6.14

1

10.19.90.76: 6379

 

redis-2.6.14

1

10.19.90.77: 6379

 

redis-2.6.14

1

 

4.3.      测试结果

1.       当各缓存的数据库空时,以单线程通过各缓存客户端set调用向服务端推送数据,比较10000操作所消耗的时间,以上动作通过使用不同大小的单个缓存对象重复三次。

 

缓存服务器

第一次(缓存对象1KB

第二次(缓存对象10KB)

第二次(缓存对象100KB

memcache

850/

472/

259/

redis

979/

426/

178/

tair

697/

363/

184/


2.       在场景一完成的情况下,以单线程通过各缓存客户端get调用向服务端获取数据,比较10000操作所消耗的时间,以上动作通过使用不同大小的单个缓存对象重复三次。

缓存服务器

第一次(缓存对象1KB

第二次(缓存对象10KB)

第二次(缓存对象100KM

memcache

840/

345/

385/

redis

978/

590/

436/

tair

701/

307/

283/


3.       在场景一完成的情况下,缓存服务器有数据,并发1000个线程通过缓存软件的客户set调用向服务端推送数据,每个线程完成10000次的操作,比较各服务器的tps大小,以上动作通过使用不同大小的单个缓存对象重复三次。

缓存服务器

第一次(缓存对象1KB

第二次(缓存对象10KB)

第二次(缓存对象100KB

memcache

25783/

22893/

19826/

redis

28457/

15279/

2826/

tair

17382/

14890/

4930/


4.       在场景三完成的情况下,缓存服务器有数据,并发1000个线程通过缓存软件的客户get调用向服务端获取数据,每个线程完成10000次的操作,比较各服务器的tps大小,以上动作通过使用不同的key取不同大小的数据,重复三次。

 

缓存服务器

第一次(缓存对象1KB

第二次(缓存对象10KB)

第二次(缓存对象100KB

memcache

25783/

20893/

9676/

redis

39991/

18735/

2794/

tair

15432/

13723/

3214/


 

转自:http://wenku.baidu.com/link?url=S4E0O6DNPgx6_HZL6OBlM7kD5pr5Ww9I2oj89FL4wT2G-PQuxhykm3zfIQmTtGR94YcVqwm7aNaCrpAAyIkvygsOQ4bQdqqXPkSHCWM4-8C

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有