我正在尝试做一个使用 aerospike 的基准测试,例如,假设我想测试存储文档可能是 aerospike 中的 JSON 并对 couchbase 进行相同的测试,我可以使用什么样的工具/方法来测试 aerospike 和沙发床。
3 回答
我对 Couchbase 不是很熟悉,但可以为您提供针对 Aerospike 的基准测试的指针(我在那里工作)。YCSB (Yahoo! Cloud System Benchmark) 可能是对抗这两者的最佳工具。这是用于对抗 Aerospike 的代码。
现在,为了专门对 Aerospike 进行基准测试,我建议使用 Aerospike 的基准工具之一,例如Java 基准工具,并使用长度与您的 json 文档相当的字符串 (-o S:) 或 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)。
- 您可能需要超过 1 个客户端主机,因为您可能会在集群饱和之前遇到客户端的瓶颈。
- 您可能想找出适合您的工作负载/对象大小的最佳线程数。通常在 60 到 100 之间。
最后,我建议阅读一些与对 Aerospike 和其他 NoSQL 数据库进行基准测试相关的已发布文档。特别是这个。
希望这可以帮助!
对于 Couchbase,过程类似,Couchbase 提供了一个工具,用于通过cbworkloadgen在集群上生成大量流量。
与上述 Aerospace 建议的工作负载相当的工作负载将按如下方式执行(根据您的操作系统,在上面链接中指定的目录中):
./cbworkloadgen -n 127.0.0.1:8091 -u username -p password -j -i 10000000 -r 0.2 -t 8
与 Aerospike 的示例一样,80:20 读/写(-r 0.2
)和 8 个并发线程(-t 8
)再次存储 JSON 文档(注意,不是 JSON blob)(-j
)
如果您正在为未来的用例进行基准测试,请尝试使用接近您将使用的设置(即硬件配置的多个节点接近您打算使用的设置),无论是在数据存储集群和客户端主机(即多个主机)。
最后,许多不同的公司会产生许多不同的基准,这些基准可能准确也可能不准确地代表您可以期望从他们的软件中获得的性能(以及他们声称它将如何与竞争对手相关的行为)。您必须彻底研究并将任何声明与您自己的基准相匹配,这一点很重要。一些已发布的基准测试可能会返回一个级别的性能,而在您的特定设置中获得相同的性能可能是可能的,但可能需要非常细微的调整(并且您需要付出大量的努力)。
我最近正在尝试测试 Aerospike。我使用的基准是aerospike-client 中包含的基准。这可能是一个不错的选择。:)