833 字 | 3 分钟

这是性能压测时需要用到的一些工具和脚本。

说明

performance_test_tools/**.sh 主要是腾讯云新申请机器的时候用的一些部署脚本 performance_test_tools/tool/* 主要是一些压测和监控相关的工具和脚本。 使用之前,通常需要先修改conf.sh,改一些简单的配置。 脚本里面可能有一些简单的参数,需要手动修改。基本都是以参数的形式出现在脚本的最前面,可以根据需要进行简单的修改。

工具位置

performance_test_tools/tool

conf.sh

这里用来配置ip,port,二进制目录等。因为很多脚本都要用到这些信息,为了简单统一在这儿配置。

redis-benchmark

在redis-for-cloud分支上面做了简单的修改,然后编译而成。 主要支持功能: -i 这个参数的目的是让key不是随机生成,而是从0递增,主要是为了方便校验数据的完整性。用了这个参数,-r将不再生效。 -f 为key添加前缀,主要是为了让多个benchmark添加的key没有重合的情况。最多4字节。 使用方法:同原生benchmark,比如:redis-benchmark -h 9.25.140.100 -p 30000 -c 200 -n 90 -r 100000000 -t set -a tendis+test -d 20

benchmark.sh

启动多个redis-benchmark进程,每个进程通过-c指定多个同步客户端,同时为key添加前缀 跨机压测的时候,通常redis-benchmark需要-c 1000左右才能压满 另外-r是以int为范围,通常key的随机范围不够,可以通过启动多个redis-benchmark程序,同时添加不同的前缀,来增大key的数量。 使用方法:./benchmark.sh

stat

src/tendisplus/perftools/stat.go 由这个编译而成 主要用于记录qps信息 使用方法:nohup ./stat -host $ip -port $port -password passwd >> $log &

qps.sh

用于启动stat 使用方法:nohup ./qps.sh &

transqps.sh

qps.sh脚本启动stat工具生成的qps是以秒为单位的,有时需要按更大的粒度来统计,可以用这个脚本来转换。 脚本里面的参数mergeinter=10就是统计粒度,取的是平均值,默认是10秒,变化粒度可以直接修改。 使用方法:./transqps.sh qps.log

mem.sh

用于记录内存的变化信息 使用方法:nohup ./mem.sh &

compaction.sh

用于统计compaction总量,主要是通过grep原生的rocksdb日志,然后求和,方便查看。 使用方法:

  1. ./compaction.sh $dbid $timestamp
  2. ./compaction.sh "*" "09-22:05:" //所有db,日志里面含有"09-22:05:"标记的compaction量
  3. ./compaction.sh 0 "09-20:17:" //0号db,日志里面含有"09-20:17:"标记的compaction量

svg.sh

用于记录火焰图,前提需要将FlameGraph-master工具解压在当前目录 使用方法:./svg.sh $pid

mount.sh

工具位置:performance_test_tools/mount.sh 在腾讯云机器上面测试的时候,机器通常需要自己mount,用这个脚本。 使用方法:./mount.sh

mount2.sh

工具位置:performance_test_tools/mount2.sh 腾讯云机器如果有4块网盘的时候,用这个脚本mount。 使用方法:./mount2.sh

mk.sh

工具位置:performance_test_tools/mk.sh 腾讯云机器测试,方便创建Tendis存储版目录的工具 使用方法:./mk.sh