分享

(3)Memcached Redis Membase性能测试对比分析

 dongsibei 2014-04-25
    最近在在调研分布式缓存,希望后面能够当前改进项目中缓存的使用。这个测试结果可能出乎大家的意料之外哦。

测试结果对比分析
单次读写访问Memcached最快,Redis居中,Membase最慢;
单次读写Membase和Redis速度比较接近,Membase耗时为Redis的2倍以上;
缓存的数据块越大,单次读写时间越长;
对于较大数据块(100K)的读写,Memcached相比Redis和Membase读写速度优势非常明显,平均单次读写耗时相差分别将近20倍和40倍;
用户角度看到的响应时间与“缓存单次读写平均响应时间”和“用户每秒读写次数”和“总的用户数”都有关系;
从测试数据来看,Memcached,Redis和Membase缓存的访问速度都不会成为瓶颈;

测试目的
·了解memcached、redis、membase在实际环境运行中的效果;
·分析三种缓存方式的读写效率;
·分析三种缓存方式能够支持的并发能力;

测试方案
Memcached、Redis、Membase使用默认配置,关闭redis的持久化和VM功能,限制总的缓存量1G(字节);
有限数量(100)用户并发访问;
缓存不过期,命中率80%;
三种数据长度(1K,10K,100K),考虑数据混搭;
使用Memcached 1.4.15和libevent 2.0.20版本,客户端使用gwhalin 2.6.6版本;
使用Redis 2.4.17版本,客户端使用jedis 2.1.0版本;
使用Membase 1.7.2版本,客户端使用Couchbase 1.0.3版本;

测试场景
单个用户访问,测试缓存读写能力;
100个用户并发访问,测试缓存读写能力;

测试环境说明
服务器软件版本:CentOS release 5.5(Final) ;
CPU:4核64位Intel(R) Xeon(TM) CPU 3.60GHz;
内存:8G;
同一台服务器,相同客户端软件,测试数据完全相同。











测试结果数据
写入数据耗时(数据长度)  Memcached  Redis  Membase  Memcached  Redis  Membase 
1.4.15  2.4.17  1.7.2  1.4.15  2.4.17  1.7.2 
1K  1M,  1M,  1M, 
57888 59747 52835 1024 17.68933112 17.13893585 19.38109208 每秒写入的数据量,单位:MB/s
56531 58347 51596 1,024,000 17689.33112 17138.93585 19381.09208 每次写请求数,单位:次/秒
10K  100K,  100K,  100K, 
14813 16254 18489 1024 69.12846824 62.99987695 55.38428255 每秒写入的数据量,单位:MB/s
144659 158732 180560 102,400 6912.846824 6299.987695 5538.428255 每次写请求数,单位:次/秒
100K  10K,  10K,  10K, 
8513 9347 33320 1024 120.2866205 109.5538676 30.73229292 每秒写入的数据量,单位:MB/s
831411 912862 3253991 10,240 1202.866205 1095.538676 307.3229292 每次写请求数,单位:次/秒
10~100K(混搭)  100K,  100K,  100K, 
60743 36703 127295 1024 16.85790955 27.89962673 8.044306532 每秒写入的数据量,单位:MB/s
593199 358435 1243120 102,400 1685.790955 2789.962673 804.4306532 每次写请求数,单位:次/秒
建立1G缓存数据。条目数,总响应时间,平均操作响应时间 

随机读数据耗时(数据长度)  Memcached  Redis  Membase  Memcached  Redis  Membase 
1.4.15  2.4.17  1.7.2  1.4.15  2.4.17  1.7.2 
1K  1M,  1M,  1M,
52375 52459 127402 1024 19.55131265 19.5200061 8.037550431 每秒读取的数据量,单位:MB/s
51147 51229 124416 1,024,000 19551.31265 19520.0061 8037.550431 每次读请求数,单位:次/秒
10K  100K,  100K,  100K, 
11523 11013 28916 1024 88.86574677 92.98102243 35.41292018 每秒读取的数据量,单位:MB/s
112538 107557 282387 102,400 8886.574677 9298.102243 3541.292018 每次读请求数,单位:次/秒
100K  10K,  10K,  10K, 
671 5333 14662 1024 1526.080477 192.0120008 69.84040376 每秒读取的数据量,单位:MB/s
65584 520805 1431886 10,240 15260.80477 1920.120008 698.4040376 每次读请求数,单位:次/秒
10~100K(混搭)  100K,  100K,  100K, 
4354 18978 66988 1024 235.1860358 53.95721362 15.28631994 每秒读取的数据量,单位:MB/s
42521 185334 654182 102,400 23518.60358 5395.721362 1528.631994 每次读请求数,单位:次/秒
1G缓存数据,80%命中率。条目数,总响应时间,平均操作响应时间 


并发写入数据耗时(数据长度)  Memcached  Redis  Membase  Memcached  Redis  Membase 
1.4.15  2.4.17  1.7.2  1.4.15  2.4.17  1.7.2 
1K  1M,  1M,  1M, 
33996 38189 42217 1024 30.12119073 26.81400403 24.25563162 每秒写入的数据量,单位:MB/s
33199 37294 41228 1,024,000 30121.19073 26814.00403 24255.63162 每次写请求数,单位:次/秒
10K  100K,  100K,  100K,
17220 11953 21297 1024 59.46573751 85.66886974 48.08188947 每秒写入的数据量,单位:MB/s
168167 116729 207980 102,400 5946.573751 8566.886974 4808.188947 每次写请求数,单位:次/秒
100K  10K,  10K,  10K, 
8274 9282 19547 1024 123.7611796 110.3210515 52.38655548 每秒写入的数据量,单位:MB/s
803385 901236 1897802 10,240 1237.611796 1103.210515 523.8655548 每次写请求数,单位:次/秒
10~100K(混搭)  100K,  100K,  100K, 
35626 Redis服务器异常  等待时间过长,强制终止测试。  1024 28.74305283 每秒写入的数据量,单位:MB/s
347915     102,400 287.4305283 每次写请求数,单位:次/秒
10K,  10K,  10K, 
5925 4733 9438 1024 172.8270042 216.3532643 108.497563 每秒写入的数据量,单位:MB/s
575324 459597 916355 10,240 1728.270042 2163.532643 1084.97563 每次写请求数,单位:次/秒
100用户并发。条目数,总响应时间,平均操作响应时间。 
测试时memcached和membase都比Redis服务器的cpu占用率更高。100K条数据时Redis服务器异常。 


随机读数据耗时(数据长度)  Memcached  Redis  Membase  Memcached  Redis  Membase 
1.4.15  2.4.17  1.7.2  1.4.15  2.4.17  1.7.2 
1K  1M,  1M,  1M,
2216987 3385350 7380679 102,400 46.18881392 30.24798027 13.87406226 每秒读取的数据量,单位:MB/s
21650 33060 72076 102,400,000 46188.81392 30247.98027 13874.06226 每次读请求数,单位:次/秒
10K  100K,  100K,  100K, 
652256 720702 1435458 102,400 156.9935731 142.0836906 71.33611711 每秒写入的数据量,单位:MB/s
63696 70381 140181 10,240,000 15699.35731 14208.36906 7133.611711 每次写请求数,单位:次/秒
100K  10K,  10K,  10K, 
18131 368308 652795 102,400 5647.785561 278.0281721 156.8639466 每秒写入的数据量,单位:MB/s
17603 357581 633781 1,024,000 56477.85561 2780.281721 1568.639466 每次写请求数,单位:次/秒
10~100K(混搭)  100K,  100K,  100K, 
195548 Redis服务器异常  等待时间过长,强制终止测试。  102,400 523.6565958 每秒写入的数据量,单位:MB/s
19096     10,240,000 5236.565958 每次写请求数,单位:次/秒
10K,  10K,  10K, 
209995 194644 304595 102,400 487.6306579 526.0886542 336.1841133 每秒写入的数据量,单位:MB/s
203879 188975 295723 10,240,000 4876.306579 5260.886542 3361.841133 每次写请求数,单位:次/秒
100用户并发。条目数,总响应时间,平均操作响应时间 





    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多