Linux下CPU使用率过高的排查方法
在 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使用率过高的排查方法相关推荐
- CPU使用率过高如何排查问题
CPU使用率过高如何排查问题 1.输入top指令,找到比较高的CPU使用率所对应的PID编号 1.输入ps H -eo pid,tid,%cpu | grep 进程PID 查看进程下面哪些线程TID使 ...
- linux服务器 cpu使用率过高,服务器CPU使用率过高排查与解决思路
发现服务器的cpu使用率特别高 排查思路: -使用top或者mpstat查看cpu的使用情况 mpstat -P ALL 2 1 Linux 2.6.32-358.el6.x86_64 (linux- ...
- CPU使用率过高问题排查及Linux之top命令用法详解
文章目录 问题 解决方案 top命令用法 top各输出参数含义 一.top前5行统计信息 二.进程信息 Top 1的用法 %CPU和us%的区别 问题 公司连续2天服务器告警CPU使用率过高问题,查看 ...
- (小技巧) 如何让Linux 机器CPU使用率变高
由于测试需要,需要让机器的cpu使用率变高. 单行命令搞定 for i in `seq 1 $(cat /proc/cpuinfo |grep "physical id" |wc ...
- Linux服务器CPU使用率过高排查与解决思路
日常工作中有时候会遇到Linux服务器上出现CPU负载过高的情况,影响程序的运行,一般的排除思路如下: 方法一: 使用top命令 然后按shift+p按照CPU排序,找到占用CPU过高的进程的pid ...
- java应用cpu使用率过高问题排查
---------------------------------------linux下如何定位代码问题------------------------------- 1.先通过top命令找到消耗c ...
- Linux服务器CPU使用率过高
前言 服务器使用率过高,导致,请求报错 分析 通过阿里云分析: 通过Linux命令查看原因 top 通过 top -Hp 进程号命令找到 CPU 消耗最多的线程号(列名仍然为 PID): top -H ...
- CPU使用率过高及优化方法
android系统中CPU使用率这一块在性能优化中也是非常重要的一个环节,接下来说一下我自己做优化的一些心得 一.问题的由来 近期做了一个项目,代码量比较少,但是CPU使用率达到18%-20% 如图红 ...
- linux环境CPU使用率过高问题定位
1. 找到cpu占用最高的进程id 通过top命令查看占用最高的进程id 2. 定位到对应java程序 ps -ef | grep 进程pid(或者 jps -l | grep 进程pid) 3. 定 ...
最新文章
- 百度地图JavaScript API自定义覆盖物、自定义信息窗口增删时的显示问题
- SQL压力测试用的语句和相关计数器
- Caffe源码中Net文件分析
- Ubuntu 20.04 LTS/RTX30XX显卡 快速配置深度学习环境(一行命令)
- python爬取小说代码bs4和_使用python爬虫,requests(夹带BeautifulSoup的使用)爬取网络小说...
- matlab-robtics学习笔记
- 统考计算机2010年版,2010年计算机专业统考试题数据结构
- 如何让一个用户拥有root权限
- 毕业设计第二次本周目标
- nosql数据库MongoDB的用法
- 关于java方向的思考
- 奇怪的/run/user/1000/gvfs
- 字符串的迷之算法——KMP,AC自动机,后缀数组
- oracle中如何模糊匹配,oracle中的截取,模糊匹配小结
- prompt弹出输入框中文php,Prompt输入框
- 嵌入式软件工程师待遇如何?嵌入式开发越老越吃香吗?
- java如何实现导出Excel(附源码)--文末送书
- HTML制作宣传片,怎么制作视频宣传片 视频宣传片制作软件 照片制作成宣传视频,并添加相关文字说明...
- 超级坦克大战1990 - 坦克大战超难版
- Python机器学习11——支持向量机