redis测试时关注的点:
看看redis数据(服务器和redis参数数据)
图一:
图二:
深入理解 Redis INFO 命令参数:监控服务器性能的必备工具,redis 参数说明参考
万字总结,Redis 性能问题排查解决手册(强烈建议收藏) - 知乎, redis速查手册
Used_memory 由redis分配的内存总量
Used_momory_rss 由操作系统分配的内存总量
Used_momory_rss/Used_memory 超过1的就是内存碎片(参考1-1.07),超过了要分析原因进行清现,小于1占用的就是磁盘空间,速度要慢很多。
如下redis 命中率:(命中率越高越好)
了解redis的几个命令(telnet 10.xx.xx.xx 6379 ——需求本地启用telnet命令)
图1:select 7 表示进行7分区
图2:
Reids的性能测试相关
1、安装benchmark
2、准备压测数据(同步数据redis,考虑连接数、每秒处理事务数、内存占用已用/总共(2G/4G)),key的数量
3、进入redis压测目录
/root/software/redis-3.2.8/src
4、执行压测命令(更据线上数据考靠)
./redis-benchmark -h 10.xx.xx.xx -p 36379 -c 100 -n 1000000 -t get //100个并发100w次随机get请求。
以下是redis-benchmark的常用参数:
-c:指定并发连接数,默认值为50。
-n:指定请求总数,默认值为10000。
-d:指定SET命令的value大小,默认值为2字节。
-k:指定key的数量,默认值为10000。
-t:指定测试类型,默认值为PING。
-h:指定Redis服务器的主机名,默认值为127.0.0.1。
-p:指定Redis服务器的端口号,默认值为6379。
-r:指定SET命令的value随机范围,默认值为10000。
-q:以静默模式运行,不输出任何信息。
--csv:以CSV格式输出测试结果。
5、压测关注数据。
total_commands_processed:25487735986 ——整体命令处理数
connected_clients:374 ——客户端链接数(上面的100这就客户端链接数)
1000个redis.clients,redis.total_commands_processed可以到25w左右(每秒处理事务)
2000个redis.clients,redis.total_commands_processed可以到15w左右
4000个redis.clients,redis.total_commands_processed可以到12w左右
6000个redis.clients,redis.total_commands_processed可以到10w左右
CPU数据波动5%左右
redis.used_memory_rss占用1.5G-2G
例:
2000-3000redis.clients,redis.total_commands_processed(最高5w,平均2w)
机器的 CPU、内存、网络、磁盘,都影响着 Redis 的性能。
监控时我们最好重点关注以下指标:
1、客户端相关:当前连接数、总连接数、输入缓冲大小、OPS
2、CPU相关:主进程 CPU 使用率、子进程 CPU 使用率
3、内存相关:当前内存、峰值内存、内存碎片率
4、网络相关:输入、输出网络流量
5、持久化相关:最后一次 RDB 时间、RDB fork 耗时、最后一次 AOF rewrite 时间、AOF rewrite 耗时
6、key 相关:过期 key 数量、淘汰 key 数量、key 命中率
7、复制相关:主从节点复制偏移量、主库复制缓冲区
最后的思考:
- 知道那些功能用到redis,如何找到对应的key查看数据(通过修改value进行测试)
- 知道redis的超时机制。
- 关注业务场景内存变高,连接数变多。
- 关注慢请求。
- 分区的文件夹怎么创建?
- 如何和线上请求数据保持对等测试。