在 Linux 系统下,使用 top 命令查看 CPU 使用情况。

%Cpu(s): 0.3 us, 0.1 sy, 0.0 ni, 99.6 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st

  • us(user):表示 CPU 在用户运行的时间百分比,通常用户 CPU 高表示有应用程序比较繁忙。典型的用户程序有:数据库、Web 服务器等。
  • sy(sys):表示 CPU 在内核态运行的时间百分比(不包括中断),通常内核态 CPU 越低越好,否则表示系统存在某些瓶颈。
  • ni(nice):表示用 nice 修正进程优先级的用户进程执行的 CPU 时间。nice 是一个进程优先级的修正值,如果进程通过它修改了优先级,则会单独统计 CPU 开销。
  • id(idle):表示 CPU 处于空闲态的时间占比,此时,CPU 会执行一个特定的虚拟进程,名为 System Idle Process。
  • wa(iowait):表示 CPU 在等待 I/O 操作完成所花费的时间,通常该指标越低越好,否则表示 I/O 存在瓶颈,可以用 iostat 等命令做进一步分析。
  • hi(hardirq):表示 CPU 处理硬中断所花费的时间。硬中断是由外设硬件(如键盘控制器、硬件传感器等)发出的,需要有中断控制器参与,特点是快速执行。
  • si(softirq):表示 CPU 处理软中断所花费的时间。软中断是由软件程序(如网络收发、定时调度等)发出的中断信号,特点是延迟执行。
  • st(steal):表示 CPU 被其他虚拟机占用的时间,仅出现在多虚拟机场景。如果该指标过高,可以检查下宿主机或其他虚拟机是否异常。

排查用户 CPU 使用率高

用户 CPU 使用率反映了应用程序的繁忙程度,通常与我们自己写的代码息息相关。
操作步骤:
1) 通过 top 命令找到 CPU 消耗最多的进程号;

2) 通过 top -Hp 进程号命令找到 CPU 消耗最多的线程号(列名仍然为 PID);

3) 通过printf "%x\n" 线程号命令输出该线程号对应的 16 进制数字;

4) PID进程在内核调用情况。

如果是Java应用可通过 jstack 进程号 | grep 16进制线程号 -A 10 命令找到 CPU 消耗最多的线程方法堆栈。
非 Java 应用可使用 perf

perf top -p 7574

如果提示perf: command not found,使用yum install perf安装。

perf利用Linux的trace特性,可以用于实时跟踪,统计event计数(perf stat);或者使用采样(perf record),报告(perf report|script|annotate)的使用方式进行诊断。

Linux下CPU使用率过高的排查方法相关推荐

  1. CPU使用率过高如何排查问题

    CPU使用率过高如何排查问题 1.输入top指令,找到比较高的CPU使用率所对应的PID编号 1.输入ps H -eo pid,tid,%cpu | grep 进程PID 查看进程下面哪些线程TID使 ...

  2. linux服务器 cpu使用率过高,服务器CPU使用率过高排查与解决思路

    发现服务器的cpu使用率特别高 排查思路: -使用top或者mpstat查看cpu的使用情况 mpstat -P ALL 2 1 Linux 2.6.32-358.el6.x86_64 (linux- ...

  3. CPU使用率过高问题排查及Linux之top命令用法详解

    文章目录 问题 解决方案 top命令用法 top各输出参数含义 一.top前5行统计信息 二.进程信息 Top 1的用法 %CPU和us%的区别 问题 公司连续2天服务器告警CPU使用率过高问题,查看 ...

  4. (小技巧) 如何让Linux 机器CPU使用率变高

    由于测试需要,需要让机器的cpu使用率变高. 单行命令搞定 for i in `seq 1 $(cat /proc/cpuinfo |grep "physical id" |wc ...

  5. Linux服务器CPU使用率过高排查与解决思路

    日常工作中有时候会遇到Linux服务器上出现CPU负载过高的情况,影响程序的运行,一般的排除思路如下: 方法一: 使用top命令 然后按shift+p按照CPU排序,找到占用CPU过高的进程的pid ...

  6. java应用cpu使用率过高问题排查

    ---------------------------------------linux下如何定位代码问题------------------------------- 1.先通过top命令找到消耗c ...

  7. Linux服务器CPU使用率过高

    前言 服务器使用率过高,导致,请求报错 分析 通过阿里云分析: 通过Linux命令查看原因 top 通过 top -Hp 进程号命令找到 CPU 消耗最多的线程号(列名仍然为 PID): top -H ...

  8. CPU使用率过高及优化方法

    android系统中CPU使用率这一块在性能优化中也是非常重要的一个环节,接下来说一下我自己做优化的一些心得 一.问题的由来 近期做了一个项目,代码量比较少,但是CPU使用率达到18%-20% 如图红 ...

  9. linux环境CPU使用率过高问题定位

    1. 找到cpu占用最高的进程id 通过top命令查看占用最高的进程id 2. 定位到对应java程序 ps -ef | grep 进程pid(或者 jps -l | grep 进程pid) 3. 定 ...

最新文章

  1. 百度地图JavaScript API自定义覆盖物、自定义信息窗口增删时的显示问题
  2. SQL压力测试用的语句和相关计数器
  3. Caffe源码中Net文件分析
  4. Ubuntu 20.04 LTS/RTX30XX显卡 快速配置深度学习环境(一行命令)
  5. python爬取小说代码bs4和_使用python爬虫,requests(夹带BeautifulSoup的使用)爬取网络小说...
  6. matlab-robtics学习笔记
  7. 统考计算机2010年版,2010年计算机专业统考试题数据结构
  8. 如何让一个用户拥有root权限
  9. 毕业设计第二次本周目标
  10. nosql数据库MongoDB的用法
  11. 关于java方向的思考
  12. 奇怪的/run/user/1000/gvfs
  13. 字符串的迷之算法——KMP,AC自动机,后缀数组
  14. oracle中如何模糊匹配,oracle中的截取,模糊匹配小结
  15. prompt弹出输入框中文php,Prompt输入框
  16. 嵌入式软件工程师待遇如何?嵌入式开发越老越吃香吗?
  17. java如何实现导出Excel(附源码)--文末送书
  18. HTML制作宣传片,怎么制作视频宣传片 视频宣传片制作软件 照片制作成宣传视频,并添加相关文字说明...
  19. 超级坦克大战1990 - 坦克大战超难版
  20. Python机器学习11——支持向量机

热门文章

  1. 对称NAT穿透的一种新方法
  2. 上半年亏损6700万美元,连亏三年的Mobileye正式提交IPO申请
  3. css空心图形,css画空心箭头
  4. 力扣编程题-解法汇总
  5. [POJ1637]SightseeingTour
  6. 访问学者美国访学必须知道十大注意事项
  7. jmeter压测学习47-发soap请求测试webservice接口
  8. SystemService简介
  9. Android之手机卫士涉及的知识点总结
  10. jwt鉴权(react express jsonwebtoken)