Redis容量型(PegaDB)云盘 性能白皮书
更新时间:2025-09-25
本文介绍Redis容量型(云盘)性能测试的测试环境、测试工具、测试方法与测试结果。
云盘
环境 | 说明 |
---|---|
压测客户端机器 | 百度BCC, 规格bcc.c4.c8m16(计算型8C16G,参见BCC实例规格) |
测试集群架构 | 一主一从 |
压测工具 | YCSB |
实例规格 |
压测脚本
Plain Text
1#! /bin/bash
2
3ip=192.168.0.23
4port=3100
5timeout=30000
6command_group=string
7recordcount=640000000
8run_operationcount=20000000
9fieldcount=1
10fieldlength=100
11threads=32
12load_sleep_time=600
13run_sleep_time=60
14
15echo "##################################### $command_group ############################################"
16#Load
17./bin/ycsb load redis -s -P workloads/workloada -p "redis.host=${ip}" -p "redis.port=${port}" -p "recordcount=${recordcount}" -p "operationcount=${recordcount}" -p "redis.timeout=${timeout}" -p "redis.command_group=${command_group}" -p "fieldcount=${fieldcount}" -p "fieldlength=${fieldlength}" -p "hdrhistogram.percentiles=95,99,99.9,99.99" -threads ${threads}
18sleep ${load_sleep_time}
19
20#Uniform-Read
21./bin/ycsb run redis -s -P workloads/workloadc -p "redis.host=${ip}" -p "redis.port=${port}" -p "recordcount=${recordcount}" -p "operationcount=${run_operationcount}" -p "redis.timeout=${timeout}" -p "redis.command_group=${command_group}" -p "fieldcount=${fieldcount}" -p "fieldlength=${fieldlength}" -p "requestdistribution=uniform" -p "hdrhistogram.percentiles=95,99,99.9,99.99" -threads ${threads}
22sleep ${run_sleep_time}
23
24#Zipfian-Read
25./bin/ycsb run redis -s -P workloads/workloadc -p "redis.host=${ip}" -p "redis.port=${port}" -p "recordcount=${recordcount}" -p "operationcount=${run_operationcount}" -p "redis.timeout=${timeout}" -p "redis.command_group=${command_group}" -p "fieldcount=${fieldcount}" -p "fieldlength=${fieldlength}" -p "requestdistribution=zipfian" -threads ${threads}
26sleep ${run_sleep_time}
27
28#Uniform-50%Read-50%Update
29./bin/ycsb run redis -s -P workloads/workloada -p "redis.host=${ip}" -p "redis.port=${port}" -p "recordcount=${recordcount}" -p "operationcount=${run_operationcount}" -p "redis.timeout=${timeout}" -p "redis.command_group=${command_group}" -p "fieldcount=${fieldcount}" -p "fieldlength=${fieldlength}" -p "requestdistribution=uniform" -p "readproportion=${readproportion}" -p "updateproportion=${updateproportion}" -p "hdrhistogram.percentiles=95,99,99.9,99.99" -threads ${threads}
云盘性能
压测场景
测试主要针对下述两种场景进行:
- 数据大于内存场景:只有部分数据缓存在内存,绝大多数访问需要读写硬盘,此场景下内存与数据的比例约为1:4。
压测数据
4C8G规格
Pega规格 | Value大小 | 场景 | YCSB配置 | 工作负载 | QPS | Avg(微秒) | 99th(微秒) | 99.9th(微秒) |
4C8G — pega.g4s1.micro(磁盘160G规格) | 100byte | 数据大于内存 | recordcount=640000000(约101G数据) run_operationcount=20000000 threads=32 | Load | 31472 | 989 | 7319 | 13471 |
Uniform-Read | 12681 | 2429 | 12663 | 18207 | ||||
Zipfian-Read | 21851 | 1393 | 6035 | 8751 | ||||
Uniform-50%Read-50%Update | 18008 | Read:1901 | Read:9495 | Read: 14823 | ||||
Update:1481 | Update:8943 | Update: 14271 | ||||||
1 KB | 数据大于内存 | recordcount=64000000(约96G) run_operationcount=20000000 threads=32 | Load | 16622 | 1784 | 10943 | 18191 | |
Uniform-Read | 13463 | 2207 | 9783 | 13047 | ||||
Zipfian-Read | 23958 | 1239 | 4683 | 7431 | ||||
Uniform-50%Read-50%Update | 13165 | Read: 2623 | Read: 15343 | 28831 | ||||
Update:1910 | Update: 13631 | Update: 26527 |
4C16G规格
Pega规格 | Value大小 | 场景 | YCSB配置 | 工作负载 | QPS | Avg(微秒) | 99th(微秒) | 99th(微秒) |
---|---|---|---|---|---|---|---|---|
4C16G — pega.g4s1.small(磁盘160G规格) | 100byte | 数据大于内存 | recordcount=640000000 run_operationcount=20000000 threads=32 | Load | 37532 | 812 | 6923 | 13223 |
Uniform-Read | 9057 | 3160 | 12431 | 17727 | ||||
Zipfian-Read | 16782 | 1736 | 6483 | 7927 | ||||
Uniform-50%Read-50%Update | 14667 | Read:2134 | Read:9383 | Read:14111 | ||||
Update:1809 | Update:8951 | Update:13655 | ||||||
1KB | 数据大于内存 | recordcount=64000000(约96G) run_operationcount=20000000 threads=32 | Load | 17776 | 1726 | 10735 | 18287 | |
Uniform-Read | 14505 | 2038 | 9151 | 12055 | ||||
Zipfian-Read | 29985 | 1012 | 3713 | 5919 | ||||
Uniform-50%Read-50%Update | 14782 | Read: 2372 | Read: 15695 | Read: 36127 | ||||
Update:1705 | Update: 13495 | Update: 31215 |