caching - 对于 18k/s 吞吐量,Hazelcast 平均获取延迟 > 2 ms
问题描述
背景:我们正在评估 hazelcast,它可以作为 Redis 的替代品。
设置:
- 单个子网下的集群中的 3 个成员(生产框)。每个成员都有约 1.4GB 的数据。
- 近缓存已关闭。
- 每个成员有 1 个备份。
- 通过准备一个 spring boot jar 和缓存部署的代码被实现为嵌入式的。
- 虚拟机配置:8C,31GB RAM
- 代码使用 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;```
解决方案
推荐阅读
- php - 注册错误,参数 1 在 laravel 5.8 中传递给 Illuminate\Auth\SessionGuard::login()
- android - 卸载并再次安装应用程序时出现应用程序未安装错误
- swift - UICollectionView - 为什么不调用方法?
- python - 如何从 Python 中的字符串列表中删除空格和 \n?
- reactjs - 使用 firebase 中的现有值更新集合
- python - R 等效于 R 包的 python -m 模块
- windows - 将 OpenBLAS 链接到 MinGW
- c++ - 头文件和库文件的连接
- c++ - macOS 上是否有与 clone() 系统调用等效的功能?
- javascript - Yii2 使用 Select2 和 yii2-formwizard 的表格步骤