首页 > 解决方案 > 对于 18k/s 吞吐量,Hazelcast 平均获取延迟 > 2 ms

问题描述

背景:我们正在评估 hazelcast,它可以作为 Redis 的替代品。

设置

  1. 单个子网下的集群中的 3 个成员(生产框)。每个成员都有约 1.4GB 的数据。
  2. 近缓存已关闭。
  3. 每个成员有 1 个备份。
  4. 通过准备一个 spring boot jar 和缓存部署的代码被实现为嵌入式的。
  5. 虚拟机配置:8C,31GB RAM
  6. 代码使用 IMAP 检索密钥并将其放入缓存中。

LoadTest:尝试 18K/s 的 rest API 调用来读取数据。但是 hazelcast 显示的平均 get 延迟约为 3-4 毫秒,我认为应该在微秒内,因为我们已经看到 redis 设置的 get 命令延迟很大。在此测试期间,CPU 负载约为 95%。

给出此延迟的成员的堆使用量约为 60%(已提交:7.85GB,已使用:4.68GB)。集群中的所有成员都是如此。

需要帮助来了解我的配置是否有问题,因此我无法在微秒内实现延迟?

用于启动嵌入式缓存的配置:

        config.addMapConfig(mapConfig());

        NetworkConfig networkConfig = config.getNetworkConfig();
        JoinConfig join = networkConfig.getJoin();
        join.getMulticastConfig().setEnabled(false);
        join.getTcpIpConfig().setEnabled(true).setMembers(
                Arrays.asList(
                        "ip1:5701",
                        "ip2:5701",
                        "ip3:5701"
                )
        );
        return config;```


标签: cachingbenchmarkinghazelcasthazelcast-imaphazelcast-jet

解决方案


推荐阅读