测试目的
本次测试聚焦于“数据量大于内存”这一核心场景,旨在评估云数据库 KeeWiDB 在不同硬件规格(从2核8G到16核64G)下的性能表现。
QPS (万次/秒):指数据库每秒能处理的请求次数。例如,在写操作场景下,它每秒能完成3.0万次写入。
AVG latency (ms):指完成单次操作的平均耗时。例如,每次读操作平均需要0.199毫秒。
P99 Latency (ms):指99%的请求都会完成的时间。例如,99%的读写操作耗时都低于2毫秒,代表系统响应非常稳定。
测试工具
KeeWiDB 原生兼容 Redis 协议的特性,本次性能测试采用了 Redis 官方自带的标准化性能测试工具 redis-benchmark。该工具无需任何修改即可直接使用,从而保证了测试结果的通用性与可复现性。其测试命令如下所示:
redis-benchmark -h [KeeWiDB_IP] -p [Port] -a [Password] -c 15 -n 60000000 -d 128 -t get -r 60000000
-h <hostname>: 指定 KeeWiDB 实例的连接地址。
-p <port>: 指定 KeeWiDB 实例的端口。
-a <password>: 指定连接密码。
-c <clients>: 并发客户端数量,模拟并发访问。
-n <requests>: 总请求数量。
-d <size>: SET/GET 命令中 Value 的数据大小(单位:字节)。
-t <tests>: 指定要执行的命令,如 set (写), get (读)。
-r <keyspacelen>: Key 的随机范围,用于模拟对不同 Key 的访问。
测试结果
数据压测类型为 String 128 Byte,执行 Get 与 Set 命令。
说明:
KeeWiDB 存储版写性能会受到 RocksDB Compaction 机制影响,请以实际测试为准。
测试实例规格1:单分片、2核8G、200GB磁盘
写命令:redis-benchmark -h ***** -p ***** -a ***** -c 15 -n 60000000 -d 128 -t set -r 60000000读命令:redis-benchmark -h ***** -p ***** -a ***** -c 15 -n 60000000 -d 128 -t get -r 60000000
场景 | 操作 | QPS(万次/秒) | AVG latency(ms) | P99 Latency(ms) |
数据量大于内存 | 读 | 2.7 | 0.199 | 2 |
| 写 | 3.0 | 0.302 | 2 |
测试实例规格2:单分片、4核16G、200GB磁盘
写命令:redis-benchmark -h ***** -p ***** -a ***** -c 25 -n 60000000 -d 128 -t set -r 100000000读命令:redis-benchmark -h ***** -p ***** -a ***** -c 25 -n 50000000 -d 128 -t get -r 100000000
场景 | 操作 | QPS(万次/秒) | AVG latency(ms) | P99 Latency(ms) |
数据量大于内存 | 读 | 4.9 | 0.419 | 0.575 |
| 写 | 5.8 | 0.323 | 0.439 |
测试实例规格3:单分片、8核32G、200GB磁盘
写命令:redis-benchmark -h ***** -p ***** -a ***** -c 70 -n 60000000 -d 128 -t set -r 100000000 --threads 10读命令:redis-benchmark -h ***** -p ***** -a ***** -c 70 -n 50000000 -d 128 -t get -r 100000000 --threads 5
场景 | 操作 | QPS(万次/秒) | AVG latency(ms) | P99 Latency(ms) |
数据量大于内存 | 读 | 10.7 | 0.459 | 0.711 |
| 写 | 10.5 | 0.477 | 0.703 |
测试实例规格4:单分片、16核64G、200GB磁盘
写命令:redis-benchmark -h ***** -p ***** -a ***** -c 70 -n 60000000 -d 128 -t set -r 100000000 --threads 10读命令:redis-benchmark -h ***** -p ***** -a ***** -c 70 -n 50000000 -d 128 -t get -r 100000000 --threads 5
场景 | 操作 | QPS(万次/秒) | AVG latency(ms) | P99 Latency(ms) |
数据量大于内存 | 读 | 14.2 | 0.441 | 0.607 |
| 写 | 17.6 | 0.385 | 0.527 |