zoukankan      html  css  js  c++  java
  • 线上cpu100%问题快速定位

    问题描述:服务器上部署了多个tomcat,即垂直切分的Web站点,记忆多个Java微服务,突然收到运维的cpu异常告警。

    步骤一:找到最耗cpu的进程

      工具:top

      方法:

        执行top -c,显示进程运行信息列表

        键入P(大写),进程按cpu使用率排序

      图示:

       如上图,找到最耗CPU的进程PID20136

    步骤二: 找到最耗CPU的线程

      工具:top

      方法:

        top -Hp 20136,显示一个进程的线程信息列表

        键入P,线程按CPU使用率排序

      由此找到最耗CPU的线程PID

    步骤三:将线程PID转化为16进制:

      工具:printf

      方法:printf "%x " 10804

      如图,转化为16进制0x2a58  

      之所以要转换为16进制,是因为堆栈里,线程id是用16进制表示的。

    步骤四:查看堆栈,找到线程在干嘛:

      工具:pstack/jstack/grep

      方法:jstack  20136 | grep '0x2a34' -C5 -color

        打印进程堆栈

        通过线程id,过滤得到线程堆栈

  • 相关阅读:
    web.config配置错误的后果
    重装VS.NET碰到:IDE 未能加载 Dte.olb
    初次使用Wix
    typedef
    [WTL] Accelerator
    在浏览器中粘贴时替换剪贴板数据
    自定义浏览器
    关于MSHTML
    [WTL] STLport安装指南
    [WTL] WTL7.5中CFileDialog用'\0'过滤
  • 原文地址:https://www.cnblogs.com/dquery/p/7414210.html
Copyright © 2011-2022 走看看