benchmark测试工具

11/26/2023 缓存Redis

# 一、简介

在Redis 安装完毕后会自动安装一个redis-benchmark 测试工具,其是一个压力测试工具,用于测试 Redis 的性能。
image.png
通过 redis benchmark help 命令可以查看到其用法:
image.png
其选项 options 非常多,下面通过例子来学习常用的 options 的用法。

# 二、测试-1

# 1、命令解析

image.png
以上命令中选项的意义:
● -h:指定要测试的 Redis 的 IP,若为本机,则可省略。
● -p:指定要测试的 Redis 的 port,若为 6379,则可省略。
● -c:指定模拟有客户端的数量,默认值为 50。
● -n:指定这些客户端发出的请求的总量,默认值为 100000。
● -d:指定测试get/set 命令时其操作的value 的数据长度,单位字节,默认值为 3。在测试其它命令时该指定没有用处。
以上命令的意义是,使用 100 个客户端连接该 Redis,这些客户端总共会发起 100000个请求,set/get 的value 为 8 字节数据。

# 2、测试结果分析

该命令会逐个测试所有 Redis 命令,每个命令都会给出一份测试报告,每个测试报告由四部分构成:

# 1.测试环境报告

首先就是测试环境:
image.png

ChatGPT:

  • "100000 requests completed in 0.56 seconds": 这表示在0.56秒内完成了10万次请求。
  • "100 parallel clients": 同时有100个并发客户端进行测试。
  • "8 bytes payload": 每个请求携带的数据大小为8字节。
  • "keep alive:1": 表示 keep-alive 参数设置为1,即开启了长连接。
  • "host configuration "save":3600 1 300 100 60 10000": 这部分可能是关于Redis持久化(save)配置的参数设置,包括时间间隔等。
  • "host configuration "appendonly":no": 这是关于Redis的append only文件的配置,这里设置为了不开启。

# 2.延迟百分比分布

这是按照百分比进行的统计报告:每完成一次剩余测试量的50% 就给出一个统计数据。
image.png

# 3.延迟的累积分布

这是按照时间间隔统计的报告:基本是每 0.1 毫秒统计一次。
image.png

# 4.总述报告

image.png

ChatGPT:

  • "throughput summary: 72046.11 requests per second": 表示每秒处理了大约72046.11个请求,这是一个很高的吞吐量,显示了系统的处理能力很强。
  • "latency summary (msec)": 这部分是关于延迟的总结。
    • "avg": 平均延迟为0.714毫秒。
    • "min": 最小延迟为0.328毫秒。
    • "p50": 50%的请求的延迟在0.695毫秒以内。
    • "p95": 95%的请求的延迟在0.855毫秒以内。
    • "p99": 99%的请求的延迟在1.295毫秒以内。
    • "max": 最大延迟为3.823毫秒。

# 三、测试-2

image.png
以上命令中选项的意义:
● -t:指定要测试的命令,多个命令使用逗号分隔,不能有空格。
● -q:指定仅给出总述性报告。