今天朋友问我一个Linux程序CPU占用涨停了,该如何分析,

CPU占用过高,模拟CPU占用过高的情况

先上一段代码:

 1 #include <iostream>
 2 #include <thread>
 3 #include <vector>
 4
 5
 6 int main(int argc, char **argv) {
 7
 8     std::vector<std::thread> test_threads;
 9     for(int i = 0; i < 9; i++){
10       test_threads.push_back(std::thread([]{
11     while(1){
12       std::this_thread::sleep_for(std::chrono::milliseconds(500));
13     }
14       }));
15     }
16     test_threads.push_back(std::thread([]{
17       while(1){
18       std::cout<<"cpu"<<std::endl;
19       }
20     }));
21
22     for(auto &x : test_threads){
23       x.join();
24     }
25
26     return 0;
27 }

第10个线程中没有进行睡眠,会独占进程的时间片,导致CPU利用率过高,

现在就要定位到第10个

第一步:top 查看程序进程id

第二步:top -H -p 96263 定位CPU占用过高的线程id

第三步:使用pstack 96263或者strace -f -p 96263 定位线程堆栈

strace -f -p 96263

转载于:https://www.cnblogs.com/Forever-Kenlen-Ja/p/8618102.html

Linux 线程占用CPU过高定位分析相关推荐

  1. Windows服务器java.exe占用CPU过高问题分析及解决

    原文路径:https://blog.csdn.net/ningzuobei/article/details/48828915 最近在测试一个用java语言实现的数据采集接口时发现,接口一旦运行起来,C ...

  2. 41、java应用占用cpu过高原因分析

    线上服务器cpu占用过高问题排查 1.定位最耗cpu的进程 命令:top 2.定位最耗cpu的线程 命令:Top –Hp PID 例如:Top –Hp 12086 3.打印线程堆栈信息 命令:Prin ...

  3. 与服务器竟然打架!java系统线程占用CPU过高问题,到底怎么办?

    1.下载Windows系统和应用程序监视工具Process Explorer https://download.sysinternals.com/files/ProcessExplorer.zip[建 ...

  4. Linux kworker 占用CPU过高

    先打开HTOP htop 然后按H K(大写) 我们看到Kworker/0:0+events占用了大量CPU,下面参考下人家的回答 什么是kworker? kworker表示进行"工作&qu ...

  5. window 查找 java 进程中占用cpu比较高的线程

    概述 公司内部的一个产品 (java 开发的) 运行在 window 虚拟机上,运行一段时间后CPU飙升,然后想查看是哪个线程占用. 折腾了一下午,终于定位到该线程. 下面我们通过两种方式定位到占用c ...

  6. JVM占用CPU过高或者线程卡死定位

    新项目上线初期经常会遇到CPU过高或者线程卡死问题,这虽然是两类性能瓶颈问题,但是定位方法一致,项目中也遇到过几次,分享下定位经验 1.登录项目所在服务器,直接执行top命令,可以看到cpu使用情况, ...

  7. linux下查找java进程占用CPU过高原因

    linux下查找java进程占用CPU过高原因 1. 查找进程 top查看进程占用资源情况 明显看出java的两个进程22714,12406占用过高cpu. 2.查找线程 使用top -H -p &l ...

  8. linux php cpu,查找linux下进程占用CPU过高的原因,以php-fpm为例

    很多时候,线上服务器的进程在某时间段内长时间占用CPU过高,为了优化,我们需要找出原因. 1.找出占用CPU最高的10个进程 ps aux | sort -k3nr | head -n 10 或查看占 ...

  9. epoll 性能分析(解决占用CPU 过高问题)2

    epoll 性能分析(解决占用CPU 过高问题)2 参考文章: (1)epoll 性能分析(解决占用CPU 过高问题)2 (2)https://www.cnblogs.com/Jimmy104/p/5 ...

最新文章

  1. python3 lambda表达式
  2. 批处理***与注册表
  3. iOS 移动端overflow:auto 滚动不平滑及bug处理
  4. Servlet的request.getRemoteAddr()方法回去地址是0:0:0:0:0:0:0:1
  5. Node.js:Node基础
  6. VS2010下配置 OpenCV2.2
  7. 【中学】寻找阿姆斯特朗数
  8. 绿色版电子书PDF转换Word转换器
  9. python提取首字符 判断火车票座位_python实战之通过爬虫实现火车票查询
  10. ctfshow_萌新_萌新隐藏题
  11. 各国语言缩写-各国语言简称
  12. office365服务器没有响应,Win10安装Office365时电脑无响应的原因和解决方案
  13. 奇安信可信浏览器下载地址
  14. 别让自己“墙”了自己(2019.12.1)
  15. SQL--乱七八糟问题
  16. C# Show()和ShowDialog()
  17. crackme例子2
  18. java swing界面美化_java Swing界面优化Jpanel教程
  19. ToDesk远程控制
  20. Laravel5.5源码详解 -- Laravel-debugbar及使用elementUI-ajax的注意事项

热门文章

  1. 高通modem启动过程_苹果首次承认正自研基带芯片,高通要被抛弃了?
  2. JetBrains - IDEA 常用快捷键汇总
  3. 无数种求逆元的方法总结
  4. android滑动菜单图标,Android实现简单底部导航栏 Android仿微信滑动切换效果
  5. mete30是鸿蒙系统么,华为mete30pro什么时候能用上鸿蒙系统?
  6. 使用三种方式创建Class字节码类文件对象
  7. 如何实现Oracle数据库之间的数据同步?
  8. 管道实现父子进程的信息传递(一)【fork函数、pipe函数、write/read操作、wait函数】
  9. C++:45---多态
  10. C++:17---函数指针