常用缓存性能对比,memcache,redis,tair

第1章     限制条件

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

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

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

第2章     测试场景概述

性能测试包括单机环境和分布式环境,主要针对memcache、redis、tair各缓存服务器在缓存了不同级别的数据下,多个线程并发操作向缓存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次/秒

 

转载:https://wenku.baidu.com/view/70685ea6a0116c175f0e48db.html

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值