问:如何定位是哪个服务进程导致CPU过载,哪个线程导致CPU过载,哪段代码导致CPU过载?

步骤一、找到最耗CPU的进程

工具:top

方法:

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

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

图示:

线上服务CPU100%问题快速定位实战

如上图,最耗CPU的进程PID为10765

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

工具:top

方法:

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

键入P (大写p),线程按照CPU使用率排序

图示:

线上服务CPU100%问题快速定位实战

如上图,进程10765内,最耗CPU的线程PID为10804

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

工具:printf

方法:printf “%x\n” 10804

图示:

线上服务CPU100%问题快速定位实战

如上图,10804对应的16进制是0x2a34,当然,这一步可以用计算器。

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

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

工具:pstack/jstack/grep

方法:jstack 10765 | grep ‘0x2a34’ -C5 --color

打印进程堆栈

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

图示:

线上服务CPU100%问题快速定位实战

如上图,找到了耗CPU高的线程对应的线程名称“AsyncLogger-1”,以及看到了该线程正在执行代码的堆栈。

转载地址:

https://blog.csdn.net/u014692324/article/details/80816521

linux线程负载,linux 排查cpu负载过高异常(转载)相关推荐

  1. linux下java多线程_Linux系统下Java问题排查——cpu使用率过高或多线程锁问题

    原标题:Linux系统下Java问题排查--cpu使用率过高或多线程锁问题 一个系统.特别是多线程并发的后台系统,在某些特定场景下,可能触发系统中的bug:导致cpu一直居高不下.进程hang了或处理 ...

  2. linux排查cpu占用过高问题

    排查生产上CPU使用率过高异常记录 使用TOP命令查看cpu使用率:TOP 使用ps命令查看程序的tid:ps -mp pid -o THREAD,tid,time Pid要替换项目程序的pid,如: ...

  3. jstack排查cpu使用率过高

    jstack排查cpu使用率过高 步骤: 1.top命令找出最高占用的进程(command为java) 2.查看高负载进程下的高负载线程:top -Hp [PID] (或 ps -mp PID -o ...

  4. linux 排查cpu负载过高原因

    CPU负载查看方法: 使用vmstat查看系统维度的CPU负载 使用top查看进程维度的CPU负载 一.测试工具 1.使用 vmstat 查看系统纬度的 CPU 负载: 可以通过 vmstat 从系统 ...

  5. Linux线程性能分析和CPU亲和力

    一,线程迁移和负载均衡 Linux系统在多核CPU和SMP系统上有完善的负载均衡支持.在SMP系统中,每个CPU的核都有一个迁移线程守护程序migration(一般是系统最高优先级139,实时99), ...

  6. 查看linux线程个数,linux查看cpu个数,线程数及cpu型号

    1.查看CPU逻辑id grep 'physical id' /proc/cpuinfo | sort -u physical id : 0 physical id: 1 2.查看物理CPU个数 $ ...

  7. linux 线程流水线,linux线程同步

    我是linux和linux线程的新手.我花了一些时间谷歌搜索试图理解可用于线程同步的所有函数之间的差异.我还有一些问题. 我找到了所有这些不同类型的同步,每个同步都有许多锁定,解锁,测试锁等功能. g ...

  8. linux线程篇,linux线程篇 (二) 线程的基本操作

    线程 进程 标识符 pthread_t pid_t 获取ID pthread_self() getpid() 创建 pthread_create() fork 销毁 pthread_exit() ex ...

  9. java要cpu_排查CPU占用过高的问题

    可以搜索微信公众号[Jet 与编程]查看更多精彩文章 原文发布于自己的博客平台[http://www.jetchen.cn/cpu-error/] 背景 最近测试服出现了CPU异常高的情况,占用率接近 ...

  10. 如何排查CPU占用过高以及常见的几种情况

    在最近上线过程中遇到cpu占用率过高问题 由于问题已解决,此时仅重现操作方法 1.先用top命令,找到cpu占用最高的进程 PID  如上图 2.再用ps -mp pid -o THREAD,tid, ...

最新文章

  1. 从GBIP到PXI 的发展简史
  2. 前端 ---jQuery的补充
  3. 项目管理、bug管理工具 ---禅道使用流程
  4. C# vs note
  5. java点击按钮弹出警告_GUI求教~~~我想点击按钮确定后,弹出一个提示框输入有误!,,…...
  6. Mac系统如何使用文件标记功能?
  7. 多渠道打包之动态修改App名称,图标,applicationId,版本号,添加资源
  8. 网站内部优化-怎么做好网站内部SEO优化-网站内部SEO优化方案
  9. 2022AcWing寒假算法每日一题之1934. 贝茜放慢脚步
  10. 深度篇——实例分割(三) 细说 mask rcnn 实例分割代码 训练自己数据 之 相关网络,数据处理,工具等
  11. 从抓取豆瓣电影聊高性能爬虫思路(纯干货)
  12. 阿斯利康联手多家诊断公司,共建肺癌诊疗生态圈
  13. 网络营销教程SEO 第四章.搜索引擎优化基础(第二节)
  14. 保加利亚 乱码_保加利亚PHP的回顾-游戏开始!
  15. UVA11134 传说中的车 Fabled Rooks
  16. Ubuntu18+ 使用redshift调色温 夜间闪烁
  17. Redux-Devtools调试工具安装使用
  18. 无卡支付时代 银行信用卡联手京东金融欲打翻身仗
  19. 汽车金融的上半年:易鑫巨亏超10亿 灿谷逾期率同比大幅飙升
  20. 【计算机基础-二进制的原码,反码,补码,真值】

热门文章

  1. 10. Python面向对象
  2. Composer学习之————Ubuntu14.04下安装Composer
  3. (6) 如何用Apache POI操作Excel文件-----POI-3.10的一个和注解(comment)相关的另外一个bug...
  4. mysql悲观锁总结和实践
  5. Linux mint 17中文输入法安装,改动linux mint与windows7双系统启动顺序
  6. 关于发布DIPS的MVC项目的IIS 7.0环境配置的方法
  7. 如何高效地判断奇数和偶数
  8. Dvbbs 7.1论坛鼠标指针修改方法
  9. python中控脚本_Python3.7实现中控考勤机自动连接
  10. JAVA程序员面试总结,高手整整理加强版