Engula Bench - Baseline Performance Comparison Tool
Document Version: v2.1
Last Updated: 2025-09-19
Maintained by: Engula Team
Design Goals and Comparison Methodology
Goals
Compare the Get/Set throughput and latency performance of Engula 2.1 versus Redis 7.2 across different value sizes and CPU core configurations.
Metrics
- QPS (Throughput): Queries per second
- P50 (Average Latency): Median response time
Comparison Methodology
- Single-instance comparison with persistence disabled, focusing on in-memory path and protocol processing performance
- I/O thread dimension: io-threads ∈ {1, 2, 4}
- Fixed data scale, request distribution, and concurrency model for reproducible results
- Multiple value size coverage: 8B, 32B, 128B, 512B, 1KB, 2KB
Product Overview
Comparison Test Workflow
- Start services (specify io-threads and CPU affinity)
- Run formal stress tests (repeat 3 times and take the average)
- Record QPS and P50, and save raw logs
Test Data Cases
- Total keys: 1,000,000
- Value size ranges: 8B, 32B, 128B, 512B, 1KB, 2KB (test each range and produce results)
Comparison Test Command Examples
For a test scenario with the server CPU resources limited to 2 vCores and value size of 128B, the test commands are:
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
For other test scenarios, replace the CPU resource and value size parameters accordingly.
Usage Instructions
For convenience, Engula Bench provides a Docker-based usage mode.
Runtime Environment
Engula Bench is provided as a Docker image and can run on Linux or macOS systems with Docker installed. Environment requirements:
- CentOS: Version ≥ 7.9
- Ubuntu: Version ≥ 18.04
- Docker: Recommended to use official Docker version (installation guide, VPN may be required in some networks)
- CPU: Recommended host CPU cores ≥ 8
- Glibc: Version ≥ 2.34
Running Engula Bench
1docker pull registry.cn-guangzhou.aliyuncs.com/montplex/engula-batch-benchmark
2
3# In any folder
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
The running result will display as shown below:

Since there are a total of 18 comparison groups, with Redis and Engula tested serially in each group, and each group tested 3 times, the entire test takes approximately 40 minutes to complete.
Viewing Results
After execution, a summary.html file will be generated. Open it in a browser to view the results:

FAQ
My environment doesn't support Docker. Is there a binary test method?
Yes. Contact the Engula team to obtain the installation package. Please provide the following information about your test machine:
- Operating system version
- CPU architecture
- Other relevant system information
After obtaining the installation package, test using the following method:
1tar xvf engula-bench.tar
2cd engula-bench
3./engula-batch-benchmark
The execution process is consistent with section 3.2 above.
The performance test tool displays scrolling output

This scrolling phenomenon occurs when the total width of the output content exceeds the terminal window width. The text automatically wraps to new lines. The \r carriage return can only return to the beginning of the current line, but if the content spans multiple lines, it cannot correctly overwrite the previous output, causing continuous new lines.
Solution: Reduce the terminal font size and increase the terminal width.