在第一篇文章中,我们打破了“云不等于高性能”这个流言,并且概括了如何在一个EC2实例上以1.68美元/小时的开销获得百万TPS。在本篇文章中,我们将评估4个Amazon实例的性能,场景是内存中由4个Aerospike节点组成的集群,用例则是5个不同的读/写负载。在这个部分中,r3.2xlarge是最好价格性能比的获得者。
曾今有多个报告说明分布式NoSQL数据库在虚拟和实体云基础设施上的性能:
基于这一系列的基准测试,我们选择了一个4节点Aerospike集群,当然数据完全加载在内存中,负载则使用现实世界中5个真实用例――从100%的写入负载,50/50、80/20、95/5读写负载,再到100%的读负载。在第一篇报告中,我们使用了百万个对象,而在这个测试中我们将对象数量扩展到4000万个,4个节点的Aerospike集群将比单节点部署做更多的混合读写负载,主要原因则是同步复制和一致性保障。
我们选用了如下4个Amazon实例:
结果1:Amazon R3.*根据读负载的比例线性扩展Aerospike集群TPS
越高越好
在一个4节点的Aerospike集群上,Amazon R3.*实例在所有负载中交付了最高的吞吐量,其TPS随负载读的比例线性扩展。其他类型实例会在网络上出现瓶颈,因此不能支撑更多的读操作。
结果2:Amazon延时对比每实例TPS
越低越好
每个Amazon实例都有请求数量阈值,在这个阈值之下,操作可以在更低延时被处理。一旦达到这个值,即使可以获得更高的吞吐量,延时也会随着请求数量增加而恶化。
结果3:只有节点数量在一定范围之内,Amazon R3.Large才能线性扩展Aerospike的TPS
越高越好
在80/20读写负载下,r3.large实例上的Aerospike TPS可随节点数量线性扩展,2和8节点数量对应的TPS分别是2.7万和14万。
结果4:对比节点数量和跨Amazon实例的TPS
越低越好
结果5:使用Aerospike时,R3.2xlarge表现出更好的价格性能比
越低越好
取决于实例,2-67个节点被需求以提供1.5到100万的TPS,价格分别从每月252到8552美元。当然使用年预留实例时,价格会变低,这个图显示了对于Aerospike来说,最好的实例就是r3.large或r3.2xlarge。而在同等性能下3.2xlarge节点数量最少,开销最低。
下面我们将概述相关步骤,因此你可以亲自验证Amazon实例的性能并复制结果,可以看到在Amazon实例上使用Aerospike时的线性扩展、超高吞吐量和极低的延时。
按部就班的设置
cd <java client>/benchmarks<br>./run_benchmarks -z 40 -n test -w I -o S:10 -b 10 -l 23 -k 40000000 -latency 5,1 -h YOUR_AWS_INTERNAL_IP
开始。从多个Java基准客户端提交均匀分布负载。PS:我们在r3.8xlarge上运行了一个单客户端,因为它足够满足我们的负载需求。
自己动手测试
我们在GitHub上发布了一个基于云的脚本(https://github.com/aerospike/aws-cloudformation/blob/master/vpc.json),它打包好了一切上述设置。根据README介绍,你可以自己动手测试。它运行的速度很快,整个过程总花费大约是5.60美元。
原文链接:http://highscalability.com/blog/2014/8/20/part-2-the-cloud-does-equal-high-performance.html
如您需要了解AWS最新资讯或是技术文档可访问AWS中文技术社区;如您有更多的疑问请在AWS技术论坛提出,稍后会有专家进行答疑。
订阅“AWS中文技术社区”微信公众号,实时掌握AWS技术及产品消息!
AWS中文技术社区为广大开发者提供了一个Amazon Web Service技术交流平台,推送AWS最新资讯、技术视频、技术文档、精彩技术博文等相关精彩内容,更有AWS社区专家与您直接沟通交流!快加入AWS中文技术社区,更快更好的了解AWS云计算技术。
(责编/王玉平)