记录一次redis cpu异常升高的排插思路

好久没有写博客  现在重新捡起来  记录工作中遇到的问题  方便以后在遇到类似的问题也有一个参考。

 

背景:有一天生产服务器redis  cpu 频繁报警    单核cpu 所以在想是不是业务量上来了。确定之后发现不是这个问题。

排查思路:

1. 查看监控cpu 最近三天 七天的历史状态 发现cpu目前是异常状态,比往常要高很多

2. 查看慢日志 发现有get app_encrypted:crawler_task_switch 获取某个key 用了40ms

3. monitor 监控当前命令使用状态 收集1分钟

 redis-cli -h ***** -a **** monitor > monitor.txt

4. 查看top command 发现get是最频繁的   

  取关键字GET的进行分析,统计key的get次数:   

  awk '/GET/{a[$5]++}END{for(i in a)print i"\t"a[i]}' monitor.txt |sort -k2nr|more

5. 发现排名第一的key是app_encrypted:crawler_task_switch 1分钟get 十几万次。


  问题找到,反应给开发 发现写了死循环 代码修改之后cpu恢复正常。

以上是问题排查及解决思路。 在这里记录不多 但是在排查过程中还是会遇到一些其他问题。

posted @ 2019-10-09 14:06  JustinSu  阅读(560)  评论(0编辑  收藏  举报