memcache、redis、tair性能对比测试报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
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. 测试环境
3.3. 测试结果
1.当各缓存的数据库空时,以单线程通过各缓存客户端set调用向服务端推送数据,比较
10000操作所消耗的时间,以上动作通过使用不同大小的单个缓存对象重复三次。
2.在场景一完成的情况下,以单线程通过各缓存客户端get调用向服务端获取数据,比较
10000操作所消耗的时间,以上动作通过使用不同大小的单个缓存对象重复三次。
3.在场景一完成的情况下,缓存服务器有数据,并发1000个线程通过缓存软件的客户set
调用向服务端推送数据,每个线程完成10000次的操作,比较各服务器的tps大小,以上动作通过使用不同大小的单个缓存对象重复三次。
4.在场景三完成的情况下,缓存服务器有数据,并发1000个线程通过缓存软件的客户get
调用向服务端获取数据,每个线程完成10000次的操作,比较各服务器的tps大小,以上动作通过使用不同的key取不同大小的数据,重复三次。
第4章分布式环境测试
4.1. 测试场景:
1.当各缓存的数据库空时,以单线程通过各缓存客户端set调用向服务端推送数据,比较
10000操作所消耗的时间,以上动作通过使用不同大小的单个缓存对象重复三次。2.在场景一完成的情况下,以单线程通过各缓存客户端get调用向服务端获取数据,比较
10000操作所消耗的时间,以上动作通过使用不同大小的单个缓存对象重复三次。3.在场景一完成的情况下,缓存服务器有数据,并发1000个线程通过缓存软件的客户set
调用向服务端推送数据,每个线程完成10000次的操作,比较各服务器的tps大小,以上动作通过使用不同大小的单个缓存对象重复三次。
4.在场景三完成的情况下,缓存服务器有数据,并发1000个线程通过缓存软件的客户get
调用向服务端获取数据,每个线程完成10000次的操作,比较各服务器的tps大小,以上动作通过使用不同的key取不同大小的数据,重复三次。
4.2. 分布式环境
memcache
tair configserver
tair dataserver
redis
4.3. 测试结果
1.当各缓存的数据库空时,以单线程通过各缓存客户端set调用向服务端推送数据,比较
10000操作所消耗的时间,以上动作通过使用不同大小的单个缓存对象重复三次。
2.在场景一完成的情况下,以单线程通过各缓存客户端get调用向服务端获取数据,比较
10000操作所消耗的时间,以上动作通过使用不同大小的单个缓存对象重复三次。
3.在场景一完成的情况下,缓存服务器有数据,并发1000个线程通过缓存软件的客户set
调用向服务端推送数据,每个线程完成10000次的操作,比较各服务器的tps大小,以上动作通过使用不同大小的单个缓存对象重复三次。
4.在场景三完成的情况下,缓存服务器有数据,并发1000个线程通过缓存软件的客户get
调用向服务端获取数据,每个线程完成10000次的操作,比较各服务器的tps大小,以上动作通过使用不同的key取不同大小的数据,重复三次。