如何测试和基准测试Aerospike

4

我正在尝试对使用aerospike进行基准测试。例如,如果我想测试在aerospike中存储一个文档(可能是JSON),并针对couchbase执行相同的测试,我可以使用什么样的工具/方法来在aerospike和couchbase之间进行测试。


你到目前为止尝试了什么? - aberna
我正在尝试使用JMeter进行操作,但是没有成功。由于我是初学者,可能需要一些时间。 - ramaraj
1
那么,Aerospike、Hyperdex或Couchbase哪一个更快或者你更喜欢(更安全、更易用或者更多功能)? 谢谢。 - skan
3个回答

5
我不太熟悉Couchbase,但可以给你指针来与Aerospike进行基准测试(我在那里工作)。YCSB(Yahoo!Cloud System Benchmark)可能是用于对两者进行基准测试的最佳工具。这是用于对Aerospike进行基准测试的代码。
现在,特别是针对Aerospike进行基准测试,我建议使用Aerospike的基准测试工具之一,例如Java基准测试工具,并使用一个字符串(-o S:)或与您的JSON文档长度相当的Java blob(-o B:)。
例如:
./run_benchmarks -h 127.0.0.1 -p 3000 -n test -k 10000000 -b 1 -o B:1400 -w RU,80 -z 8
这将运行80%读取和20%写入(-w RU,80)的工作负载,并使用8个并发线程(-z 8)。
但需要考虑一些重要点:
  • 理想情况下,应该针对2个或以上的节点集群运行(因此您需要使用复制因子2进行检查)。
  • 您可能需要多个客户端主机,因为在饱和集群之前,您很可能会在客户端方面遇到瓶颈。
  • 您需要找出适合您工作负载/对象大小的最佳线程数。通常在60到100之间。

最后,我建议阅读一些关于基准测试Aerospike和其他NoSQL数据库的已发布文档。特别是这个

希望这可以帮助您!


2
非常感谢Meher,这很有用。我会在上面工作并更新结果。再次感谢。 - ramaraj

2
对于Couchbase而言,过程类似,Couchbase提供了一个工具通过cbworkloadgen在集群上生成一定量的流量。

执行与Aerospike示例类似的工作负载,方法如下(在根据你的操作系统指定的链接中的目录中执行):

./cbworkloadgen -n 127.0.0.1:8091 -u 用户名 -p 密码 -j -i 10000000 -r 0.2 -t 8

与Aerospike示例一样,80:20读取/写入(-r 0.2)和8个并发线程(-t 8),使用JSON文档(注意,不是JSON blob)存储(-j)。
如果你要进行基准测试以备将来使用,请尽量使用接近你将要使用的设置(即硬件配置接近你打算使用的配置),包括数据存储集群和客户机主机(即多个主机)。
最后,许多不同的公司会发布许多不同的基准测试,这些测试可能或可能不准确地代表您可以期望从其软件中获得的性能(以及他们声称它将如何与竞争对手相比)。重要的是,你需要进行充分的研究,并将任何要求与你自己的基准测试匹配。一些已发布的基准测试可能返回一个级别的性能,而在你的特定设置上获得相同的性能可能是可能的,但可能需要真正微调(以及大量的努力)。

1
可能是由于工程问题,这就是为什么您使用第三方工具(如YCSB),因为雅虎对Couchbase和Aerospike毫不关心。 - Ronen Botzer

1

最近我在尝试测试Aerospike。我使用的基准测试工具是aerospike-client中包含的benchmark。这可能是一个很好的选择。 :)


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接