zoukankan      html  css  js  c++  java
  • 记一次生产环境docker服务CPU飙高排查

    今天早上,运维同学发现生产某个服务 CPU 持续飙高,于是开始进行排查:

    1、首先使用 top 命令,查看 CPU 占用高的进程,得到进程 ID

      

    2、根据上一步找到的进程ID,ps -ef | grep [进程ID] 找到对应程序

      

    3、进入程序对应docker容器

       docker exec -iter [容器ID] /bin/bash

    4、容器内部使用 top 命令,查看 CPU 占用高的进程,得到进程 ID

      

    5、根据上一步找到的进程ID,使用 top -Hp [进程ID] 找到进程中 CPU 占用高的线程 ID

       

    6、使用 printf %x [线程ID] 输出线程 ID 的16进制

       

    7、使用 jstack [进程ID] | grep [16进制线程ID] -A60 ,查看线程的堆栈日志

     

    8、根据查看到的日志,发现是 lettuce 线程占用 CPU 过高,昨天晚上上的版本,开启了 lettuce 自动刷新 Redis 集群拓扑结构的开关,并且设置心跳时间为1秒,应该是这个原因导致的,通知运维把配置开关注释,CPU 随后降下来了

  • 相关阅读:
    html问题记录20180529
    html问题记录20180518
    html问题记录20180515
    Redis持久化--AOF
    Redis持久化--RDB
    Redis事件模型
    两个字符串的编辑距离-动态规划方法
    Reactor事件模型在Redis中的应用
    事件驱动模式--Reactor
    IO多路复用--总结
  • 原文地址:https://www.cnblogs.com/codewy/p/15724179.html
Copyright © 2011-2022 走看看