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,过滤得到线程堆栈

  • 相关阅读:
    php省市联动实现
    json学习笔记
    ajax无刷新技术
    session和cookie
    缩略图,透明度,水印,图片合并
    PHP画矩形,椭圆,圆,画椭圆弧 ,饼状图
    PHP字母数字验证码和中文验证码
    PHP画图的基本步骤GD库
    文件上传和多文件上传
    js身份证验证
  • 原文地址:https://www.cnblogs.com/dquery/p/7414210.html
Copyright © 2011-2022 走看看