云数据库 GEMINIDB-性能测试方法:测试步骤
测试步骤
- 注入测试数据
测试前,生成并注入数据库测试数据。基于测试模型三种类型的分布,对三种数据类型进行如下配置:
- hash类型
- key:34位字符,使用字符串前缀+9位数字,数字由1亿-9亿连续,以控制数据总量和热数据分布。
- field-value共注入10对,其中field为10位字符,value为20-80位随机字符,注入测试数据时取均值50位。
- 构造并注入约8亿个key:
memtier_benchmark -s ${ip} -a $(passwd} -p ${port} -c 20-t20 -n7500000 -d 32 -key-maximum=3 800000000 -key-minimum =1000000000 --key-pr efix ='cefkljrithuir123894873h4523blj4b2jkjh2iw13b nfdhsbnkfhsdjkh' --key-pattern=P:P--ratio=1:0 -pipelire=100
- string类型
- key:68位字符,使用字符串前缀+10位数字,数字由10亿-38亿连续,以控制数据总量和热数据分布。
- value:注入32位随机字符。
- 构造并注入约28亿个key:
memtier_benchmark -s ${ip} -a ${passwd} -p ${port} -c 20 -t 20 -n 2500000 --command='hset __key__ mendke398d __data__ mebnejkehe __data__ fmebejdbnf __data__ j3i45u8923 __data__ j43245i908 __data__ jhiriu2349 __data__ 21021034ji __data__ jh23ui45j2 __data__ jiu5rj9234 __data__ j23io45u29 __data__' -d 50 --key-maximum=900000000 --key-minimum=100000000 --key-prefix='ewfdjkff43ksdh41fuihikucl' --command-key-pattern=P --pipeline=100
- string类型
- key:19位字符,使用字符串前缀+9位数据,数字由1亿到3亿连续,以控制数据总量和热数据分布。
- value:500 – 2000位随机字符,注入测试数据时取均值1250位。
- 构造并注入约4亿个key:
memtier_benchmark -s ${ip} -a ${passwd} -p ${port} -c 20 -t 20 -n 520000 -d 1250 --key-maximum=300000000 --key-minimum=100000000 --key-prefix='miqjkfdjiu' --key-pattern=P:P --ratio=1:0 --pipeline=100
数据注入完成后,观察其key个数为3,809,940,889个key(约38亿)。观察GeminiDB Redis控制台中使用数据总量,计算GeminiDB Redis的数据压缩比。压缩后的存储容量约为155GB,即压缩比约为13.8%。
- 受memtier_benchmark数据平铺时数据生成影响,生成数据在40亿条左右,各类型间数据分布不受影响。
- memtier_benchmark工具构造随机字符串中连续字符较多,因此压缩比偏低。根据经验,实际生产数据压缩比一般在30%-50%左右,仍可以达到很好的压缩效果。
- hash类型
- 压测命令
在三台E CS 上对GeminiDB Redis实例执行多个压测任务,压测任务分别为:
- ECS1上,对类型一进行hgetall查询操作,通过key范围控制仅访问部分高频数据:
memtier_benchmark -s ${ip} -a ${passwd} -p ${port} -c 20 -t 30 --test-time 1200 --random-data --randomize --distinct-client-seed --command='hgetall __key__' --key-maximum=600000000 --key-minimum=200000000 --key-prefix='ewfdjkff43ksdh41fuihikucl' --out-file=./output_filename
- 对类型二进行get查询操作,通过key范围控制仅访问部分高频数据:
memtier_benchmark -s ${ip} -a ${passwd} -p ${port} -c 70 -t 30 --test-time 1200 --random-data --randomize --distinct-client-seed --key-maximum=2400000000 --key-minimum=1000000000 --key-prefix='cefkljrithuin123894873h4523bhj4b2jkjh2iu13bnfdhsbnkfhsdjkh' --ratio=0:1 --out-file=./output_filename
- 对类型三进行get查询操作,通过key范围控制仅访问部分高频数据:
memtier_benchmark -s ${ip} -a ${passwd} -p ${port} -c 10 -t 30 --test-time 1200 --random-data --randomize --distinct-client-seed --key-maximum=300000000 --key-minimum=100000000 --key-prefix='miqjkfdjiu' --ratio=0:1 --out-file=./output_filename
其中,连接数(c、t两个参数乘积)通过调整各个压测实例的client数量及配置使整体达到160w QPS,同时读请求流量1.5Gb/s。保持该业务流量,评估GeminiDB Redis的性能表现。
- ECS1上,对类型一进行hgetall查询操作,通过key范围控制仅访问部分高频数据:
- 如何在测试计划服务中使用关键字?
- 免费数据库mogodb_文档数据库增强版_GeminiDB Mongo接口_兼容MongoDB
- 性能测试使用教程_性能测试操作步骤_性能测试快速入门-华为云
- 性能测试使用流程_性能测试怎么样_性能测试 CodeArts PerfTest-华为云
- 云数据库 RDS for MySQL磁盘扩容方法_华为云
- 什么是性能测试_性能测试作用_性能测试 CodeArts PerfTest-华为云
- 性能测试产品优势_性能测试应用场景_性能测试CodeArts PerfTest-华为云
- 性能测试有哪些特性_性能测试特点_性能测试 CodeArts PerfTest-华为云
- 性能测试基本概念_性能测试有什么作用_性能测试 CodeArts PerfTest-华为云
- 时序数据库_GeminiDB Influx 接口场景_免费_数据库资源_实时数据库和时序数据库