Engula Bench(基准测试工具)
1. 设计目标和对比方法
- 目标:对比 Engula 2.1 与 Redis 7.2 在不同 value 大小和 CPU 核数场景下的 Get/Set 吞吐与延迟表现。
- 指标:QPS(吞吐量)、P50(平均延迟)。
- 对比方法说明:
- 单机对比,关闭持久化,专注内存路径与协议处理性能。
- I/O 线程数维度:
io-threads ∈ {1, 2, 4}。
- 数据规模、请求分布、并发模型固定,结果可重复。
- Value 大小多档位覆盖:8B、32B、128B、512B、1KB、2KB。
2. 产品介绍
2.1 对比测试流程
- 启动服务(指定
io-threads、CPU 亲和性)。
- 正式压测(重复 3 次取平均)。
- 记录 QPS、P50,并保存原始日志。
2.2 测试数据用例
- Key 总量:1,000,000
- Value 大小档位:8B、32B、128B、512B、1KB、2KB(逐档测试并出具结果)。
2.3 对比测试命令示例
在限制服务端 CPU 资源为 2 vCore,value 大小为 128B 的测试场景下,测试命令如下:
1taskset -c 0-1 redis-server --save "" --appendonly no --io-threads 2
2taskset -c 4-7 redis-benchmark --threads 4 -c 200 -r 1000000 -n 1000000 -q -t set,get -d 128
其它测试场景只需替换 CPU 资源和 value 大小相应参数即可。
3. 使用说明
为方便使用,Engula Bench 提供了 Docker 版本的使用模式。
3.1 运行环境
Engula Bench 以 Docker 镜像形式提供,可在安装有 Docker 的 Linux 或 macOS 系统上运行,具体环境要求如下:
- CentOS 版本 ≥ 7.9
- Ubuntu 版本 ≥ 18.04
- 推荐使用 Docker 官方版本(安装指南,部分网络可能需 VPN)
- 建议主机 CPU 核心数不少于 8 核
- 建议 Glibc 版本 ≥ 2.34
3.2 运行 Engula Bench
1docker pull registry.cn-guangzhou.aliyuncs.com/montplex/engula-batch-benchmark
2
3# 在任意文件夹内
4mkdir tmp_test && cd tmp_test
5touch output.log
6touch summary.html
7
8docker run --user $(id -u):$(id -g) -it --rm \
9 -v $(pwd)/output.log:/montplex/tmp_bin/output.log \
10 -v $(pwd)/summary.html:/montplex/tmp_bin/summary.html \
11 registry.cn-guangzhou.aliyuncs.com/montplex/engula-batch-benchmark
运行结果如下图:

由于一共要跑 18 组对比,每组 Redis 和 Engula 串行测试,且每组测试 3 次,总共大约需要 40 分钟完成整个测试。
3.3 查看运行结果
运行结束后会生成一个 summary.html 文件,通过浏览器打开查看运行结果,如下图:

4. FAQ
4.1 我的环境不支持 docker,是否有二进制测试的方法?
有的,联系云奈科技工作人员获得安装包,需要提供下测试的机器的操作系统版本和 CPU 架构等信息。获得安装包以后,按照下列方法进行测试:
1tar engula-bench.tar
2cd engula-bench
3./engula-batch-benchmark
执行过程和 3.2 节讲述一致,此处不再赘述。
4.2 执行性能测试工具出现滚屏

例如出现上图这样的滚屏现象。
这是因为当输出内容的总宽度超过终端窗口宽度时,文本会自动换行。使用 \r 回车符只能回到当前行的开头,但如果内容跨越了多行,就无法正确覆盖之前的输出,导致不断产生新行。
解决方法:缩小终端字体,或增大终端的宽度即可。