首页/数据/Redis 进阶速查/memtier_benchmark 复杂负载模拟
性能与排障129 条

memtier_benchmark 复杂负载模拟

memtier_benchmark 支持读写比例、键分布、数据集大小与集群模式,能构造更接近业务的混合负载,适合容量测试。

Redis 进阶速查数据更新于 2026-10-13

memtier_benchmark 是什么

memtier_benchmark 是 Redis 生态里常用的负载生成器,支持指定读写比例、键分布、数据大小与集群模式,能构造更接近业务的混合负载,适合容量测试与优化验证。它按线程乘连接的模型组织并发,比内置命令集更贴近真实的访问模式。

基本信息

工具memtier_benchmark
关键参数--ratio 读写比、--key-pattern 键分布、--data-size 值大小
并发模型--threads 线程数乘以 --clients 每线程连接数
集群支持--cluster-mode 可对集群压测
输出按命令分组的吞吐与百分位延迟

典型使用场景

  • 容量测试:按目标读写比与数据规模构造负载,寻找指标拐点
  • 倾斜访问验证:用高斯分布模拟热点键,观察延迟差异
  • 连接模型对比:不同线程与连接组合下的吞吐差异
  • 集群验证:多分片下的总体吞吐与分片间均衡度
  • 回归对比:固定参数与随机种子,让优化前后结果可复现
  • 数据规模敏感度:键数量从小到大观察命中率与内存变化

典型负载

典型负载
memtier_benchmark -s 127.0.0.1 -p 6379 --ratio=1:9 --clients=50 --threads=4 -n 100000  # 读写比 1:9
memtier_benchmark --ratio=0:1 --key-pattern=G:G --key-stddev=10 --key-maximum=100000      # 高斯分布热点键
memtier_benchmark --data-size=1024 --ratio=1:4 -n 50000      # 指定写入值大小
memtier_benchmark --cluster-mode -s 10.0.0.1 -p 6379         # 集群模式压测
memtier_benchmark --ratio=1:9 --key-pattern=S:S --clients=30 -n 50000  # 顺序键分布
redis-cli INFO stats | grep -E 'instantaneous_ops_per_sec'   # 服务端侧同步观测
redis-cli INFO memory | grep -E 'used_memory:'               # 压测期间内存变化

参数要点

参数含义使用建议
--ratio写与读的比例按业务真实读写比设置
--key-pattern键分布模式(随机/顺序/高斯)热点场景用高斯分布
--data-size写入值的大小按真实数据分布设置,必要时加随机因子
--threads 与 --clients线程数与每线程连接数两者乘积等于总并发连接
--cluster-mode启用集群压测验证分片分布与重定向开销
键分布全随机会让结果偏乐观:真实业务通常带热点,用高斯分布或指定前缀构造的负载更接近线上表现。
压测要和监控在同一时间窗口进行,服务端指标与客户端结果对齐之后才能判断瓶颈落在哪一层。

易错点

  • 键分布全随机,与业务的倾斜访问不符,容量结论过于乐观
  • 压测与监控不同步,瓶颈出现时拿不出服务端证据
  • 压测机与被测实例的网络位置和真实调用方差距大,结论不可迁移
  • 不固定随机种子与参数,两次压测结果无法直接比较

数据来源与参考

  • Redis 官方实践:memtier_benchmark 使用
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌