redis的memtier-benchmark用法
memtier_benchmark
是一个高性能的基准测试工具,专门用于测试 Redis 和 Memcached 等内存数据库的性能。它支持多线程、多客户端并发测试,并提供详细的性能统计信息。以下是 memtier_benchmark
的详细用法和示例。
1. 安装 memtier_benchmark
(1) 在 Linux 上安装
sudo apt-get update
sudo apt-get install memtier_benchmark
(2) 在 macOS 上安装
brew install memtier_benchmark
(3) 从源码编译安装
git clone https://github.com/RedisLabs/memtier_benchmark.git
cd memtier_benchmark
autoreconf -ivf
./configure
make
sudo make install
2. 基本语法
memtier_benchmark [options]
3. 常用选项
选项 | 说明 |
---|---|
-s <host> |
指定 Redis 服务器的主机名(默认:127.0.0.1)。 |
-p <port> |
指定 Redis 服务器的端口号(默认:6379)。 |
-a <password> |
如果 Redis 设置了密码,使用该选项指定密码。 |
-c <clients> |
指定并发客户端数量(默认:50)。 |
-t <threads> |
指定线程数量(默认:4)。 |
-n <requests> |
指定每个客户端的请求数量(默认:10000)。 |
-d <size> |
指定 SET 值的数据大小(单位:字节,默认:32)。 |
--ratio <ratio> |
指定读写操作的比例(如 1:1 表示读写各占一半,默认:1:0)。 |
--pipeline=<num> |
使用管道(pipeline)进行测试,指定每个管道的请求数量。 |
--key-pattern=<pattern> |
指定键名的生成模式(如 R:R 表示随机键名,S:S 表示顺序键名)。 |
--key-minimum=<min> |
指定键名的最小值(默认:1)。 |
--key-maximum=<max> |
指定键名的最大值(默认:1000000)。 |
--test-time=<sec> |
指定测试的持续时间(单位:秒)。 |
--hide-histogram |
隐藏直方图输出。 |
--json-out-file=<file> |
将测试结果以 JSON 格式保存到文件。 |
4. 常用示例
(1) 基本测试
使用默认参数测试 Redis 服务器:
memtier_benchmark -s 127.0.0.1 -p 6379
(2) 指定并发客户端和线程数量
使用 100 个并发客户端和 8 个线程进行测试:
memtier_benchmark -s 127.0.0.1 -p 6379 -c 100 -t 8
(3) 指定请求数量
每个客户端发送 50000 个请求:
memtier_benchmark -s 127.0.0.1 -p 6379 -n 50000
(4) 指定读写比例
读写操作比例为 1:1(即读写各占一半):
memtier_benchmark -s 127.0.0.1 -p 6379 --ratio=1:1
(5) 使用管道测试
使用管道进行测试,每个管道包含 10 个请求:
memtier_benchmark -s 127.0.0.1 -p 6379 --pipeline=10
(6) 指定键名范围
键名范围为 100000 到 200000:
memtier_benchmark -s 127.0.0.1 -p 6379 --key-minimum=100000 --key-maximum=200000
(7) 指定测试时间
测试持续时间为 60 秒:
memtier_benchmark -s 127.0.0.1 -p 6379 --test-time=60
(8) 输出 JSON 结果
将测试结果保存为 JSON 文件:
memtier_benchmark -s 127.0.0.1 -p 6379 --json-out-file=result.json
5. 结果解读
memtier_benchmark
的输出结果通常包括以下信息:
- Throughput:每秒处理的请求数(QPS)。
- Latency:请求的延迟分布(如最小值、最大值、平均值、百分比延迟等)。
- Request Count:测试期间发送的总请求数。
- Bytes Transferred:传输的总字节数。
例如:
ALL STATS
========================================================================
Type Ops/sec Hits/sec Misses/sec Avg. Latency KB/sec
-----------------------------------------------------------------------
Sets 50000.00 --- --- 0.50000 1562.50
Gets 50000.00 50000.00 0.00 0.50000 1562.50
Waits 0.00 --- --- --- ---
Totals 100000.00 50000.00 0.00 0.50000 3125.00
6. 注意事项
- 测试环境:确保测试环境与生产环境一致,避免测试结果失真。
- 资源限制:测试过程中可能会占用大量 CPU、内存和网络资源,避免在生产环境中运行。
- 多次测试:建议多次运行测试,取平均值作为最终结果。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
2021-02-24 Cron表达式
2018-02-24 使用maven创建web项目【转】
2018-02-24 SSM框架搭建总结(2)
2018-02-24 maven pom文件结构简析