Hazelcast 发布了两个基准测试,将他们的系统与 Redis 开源数据库进行比较
最近,多个潜在客户和现有客户要求我们对 Redis Enterprise 和 Hazelcast(在网络上)进行类似的基准测试。鉴于 Redis Enterprise 集群基于与开源集群不同的架构(如 此处 进一步解释),我们想看看这些结果中是否有任何差异。
起初,我们旨在复制 Hazelcast 使用的完全相同的基准测试设置,但他们显然使用了专有硬件。作为一家云原生公司,Redis 在内部没有托管任何服务器,因此我们决定在 AWS 上寻找类似的服务器配置。以下是我们使用的设置
参数 | 值 |
服务器和客户端机器 |
|
服务器机器数量 | 3 |
客户端机器数量 | 3 |
Redis Enterprise | Hazelcast | |
操作系统版本 | Ubuntu 16.04 | |
集群版本 | 5.2.0 | 3.9 |
集群配置 |
| 3 个成员 |
在他们的基准测试中,Hazelcast 使用 RadarGun 来协调针对 Hazelcast 和 Redis 生成的负载。在 Redis 的情况下, RadarGun 启动了一个 Jedis 集群 并使用了类似于 此 的配置文件(尽管我们在 此 分支中没有找到 Hazelcast 列出的确切设置)。
使用正确的工具测试产品对于运行成功的基准测试至关重要。例如,大多数专家更愿意使用 流水线技术 测试 Redis,因为这可以加速 Redis,并且被大部分 Redis 用户使用。但是,我们在 Hazelcast 的基准测试中没有找到流水线配置。
因此,我们选择了以下方法
Redis Enterprise | Hazelcast | |
版本 | memtier_benchmark 版本 1.2.8 | RadarGun 版本 3.0.0 |
每个客户端的线程数 | 64 | |
读写比例 | 80:20 | |
对象数量 | 400 万 | |
对象大小 | 长度在 100 字节到 10,000 字节之间的随机分布的字符串 | |
总数据集大小 | 42GB | |
使用的命令行 | memtier_benchmark –cluster-mode -s <ip_address> -p <port_number> –key-maximum=4000000 –test-time=900 –data-size-range=100-10000 -c 1 -t 64 –pipeline=5 –key-pattern=P:P –ratio=1:4 –distinct-client-seed | dist.sh -c benchmark-hazelcast-server.xml -t -u ubuntu -o `pwd` -m ip-radargun:2103 ip-server-1 ip-server-2 ip-server-3 ip-client-1 ip-client-2 ip-client |
以下是我们的基准测试结果
我们重新运行了比较 Hazelcast 和 Redis 在网络上的性能基准测试,并做出了两个主要更改
我们发现 Hazelcast 的性能结果与该公司在 此处 发布的结果非常相似(或更好)。因此,我们倾向于相信 Hazelcast 集群和 RadarGun 协调器配置正确。
另一方面,我们的发现表明 Redis Enterprise 集群的吞吐量(超过 3.5 倍)和延迟(约 3 倍)比 Hazelcast 的高得多。我们认为这些差异与以下因素有关
如果您对该基准测试有任何疑问,请随时通过电子邮件与我联系:keren at redis.com。如果您想了解有关 Redis Enterprise 的更多信息,请访问 此处 或通过电子邮件与 product at redis.com 联系。