Redis教程

Redis CPU过高排查

本文主要是介绍Redis CPU过高排查,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

Redis CPU过高

测试环境经常卡住,经过排查是鉴权的不稳定,鉴权又经过redis查询。来到redis机器,发现cpu100%。redis的锅

top

image

redis竟然cpu使用率达到100%

保存慢查询条数

config get showlog-max-len

设置慢查询条数

config set showlog-max-len 1000

查看当前已记录数量

slowlog len

查看已重新记录日志

slowlog reset

获取慢查询记录

slowlog get 100

image

查看慢查询日志。发现有好几个scan操作执行时间超过10000微秒,有些更甚高达20000微秒。这个意味,如果都是这样的操作,redis每秒并发性能只能达到50~100。很恐怖,redis号称每秒10万并发的呀。

设置慢查询游标(默认微妙)

config set slowlog-log-slower-than 1000

获取慢查询游标(默认微妙)

config get slowlog-log-slower-than

查看连接数设置

config get maxclients

查看当前客户端连接数

info clients

image

观测info命令数量

info commandstats

image

calls: 次数
usec: 总时间
usec_per_call:平均时间

scan调用次数为1.36亿,平均时间为1356.37微秒。这个意味,如果都是这样的操作,redis每秒并发性能只能达到1000。

查看monitor监控

redis-cli -h 127.0.0.1 -p 6379 -a password monitor > a.txt

image

image

记录5分钟的redis操作日志。统计一下redis一秒约850个请求。有750个是scan操作。破案了。scan模糊查询,大keys的锅。业务问题,剩下的就是改业务问题了。

这篇关于Redis CPU过高排查的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!