io-threads ∈ {1, 2, 4}。io-threads、CPU 亲和性)。在限制服务端 CPU 资源为 2 vCore,value 大小为 128B 的测试场景下,测试命令如下:
其它测试场景只需替换 CPU 资源和 value 大小相应参数即可。
| 项 | 内容 |
|---|---|
| 工具简介 | 自动对比 Engula 与 Redis 在吞吐、延迟、CPU 线程配置和 value 大小维度下的表现。 |
| 前置条件 | 本机可运行 Docker;建议至少 8 核 CPU;准备 output.log 和 summary.html 输出文件。 |
| 快速开始 | docker run --user $(id -u):$(id -g) -it --rm -v $(pwd)/output.log:/montplex/tmp_bin/output.log -v $(pwd)/summary.html:/montplex/tmp_bin/summary.html registry.ap-southeast-1.aliyuncs.com/montplex/engula-auto-bench:latest |
| 输出解读 | 重点查看 summary.html 中不同 value 大小、I/O 线程数下的 QPS、P50 和 CPU 维度差异。 |
| 完整示例 | 见下方“运行 Engula AutoBench”。 |
| 参数 | 作用 |
|---|---|
--user $(id -u):$(id -g) |
让容器生成的日志文件归属当前用户,方便直接打开和清理。 |
-v $(pwd)/output.log:/montplex/tmp_bin/output.log |
挂载终端日志输出文件。 |
-v $(pwd)/summary.html:/montplex/tmp_bin/summary.html |
挂载 HTML 汇总报告输出文件。 |
为方便使用,Engula AutoBench 提供了 Docker 版本的使用模式。
Engula AutoBench 以 Docker 镜像形式提供,可在安装有 Docker 的 Linux 或 macOS 系统上运行,具体环境要求如下:
运行结果如下图:

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

官网推荐使用 Docker 镜像运行。如果测试机不能运行 Docker,请联系云奈科技工作人员获取与目标操作系统、CPU 架构匹配的离线包;离线包命令以交付包内 README 为准。

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