讲师中心 微信公众号
AI工具推荐 视频效率加速

Linux如何排查CPU占用过高_Linux CPU占用过高排查教程

酷强君_6849

酷强君_6849

发布时间:2026-04-05 17:57:52

|

1032人浏览过

|

来源于php中文网

原创

top是必须立即执行的首个命令,用于判断CPU占用类型(us/sy/wa/id)、定位高负载进程及线程、结合strace/perf/py-spy等工具深入分析,并需结合业务场景判断是否真异常。

linux如何排查cpu占用过高_linux cpu占用过高排查教程

top 是你第一个该敲的命令,不是“可能有用”,而是必须立刻执行。它能直接告诉你当前谁在吃 CPU、吃的是用户态还是内核态、有没有大量 I/O 等待——这些信息决定了后续排查方向,跳过这步等于蒙眼修车。

怎么看 top 输出里的关键指标

启动后别急着扫进程列表,先盯住顶部那行 %Cpu(s):us、sy、wa、id 这几个值才是诊断起点。

  • us 高(比如 >70%)且 wa 很低 → 问题大概率在你自己跑的程序里,比如 Python 脚本死循环、Java 应用某方法卡住
  • wa 高(比如 >20%)而 us 和 sy 都很低 → CPU 其实在干等磁盘,不是真忙,得切到 iostat -x 1 看 %util 和 await
  • sy 高(比如 >30%)→ 内核调用太频繁,可能是大量小文件读写、频繁 fork、或驱动异常,用 perf top -g -p <pid></pid> 看内核栈
  • id 接近 100% 但负载(load average)却很高 → 注意看有没有大量 D 状态进程(不可中断睡眠),这是磁盘卡死的典型信号,ps aux | awk '$8 ~ /D/ {print}' 可快速过滤

定位具体进程和线程的实操顺序

别一上来就 kill -9,先确认是不是真要杀。重点是快速锁定“最烫的那个点”:

  • 在 top 里按 P(大写)按 CPU 使用率降序,记下第一行的 PID
  • 再执行 top -Hp <pid></pid>,同样按 P,找线程级的“罪魁”——注意列名还是 PID,但这是线程 ID
  • 把线程 ID 转成十六进制:printf "%x\n" ,结果用于下一步堆栈匹配
  • Java 进程:直接 jstack <pid> | grep -A 10 ""</pid>,看是不是卡在 HashMap.get 或某个正则匹配上
  • C/C++/Go 等原生进程:用 perf record -p <pid> -g -- sleep 10</pid> 录 10 秒,再 perf report -g 看热点函数

perf 不可用时的替代方案

很多生产环境没装 perf,或者权限受限。这时候别硬等,有更轻量的路径:

  • 先试 strace -p <pid> -c</pid>(加 -c 是统计模式),几秒就能看到最耗时的系统调用,比如全是 epoll_wait 就可能是网络事件堆积,全是 read 就可能是日志刷太猛
  • 对 Python 进程,py-spy record -p <pid> -o profile.svg</pid>(需提前装 py-spy)比 strace 更友好,能直接看到 Python 函数级火焰图
  • 如果连 strace 都被禁用,就用 cat /proc/<pid>/stack</pid>(仅限内核支持),看当前线程在内核哪条路径上卡住,常见输出如 [<ffffffff81204b5d>] __do_page_fault+0x2ad/0x4f0 表示缺页异常频繁

真正难的不是找到高 CPU 进程,而是判断“它该不该这么高”。比如一个定时归档脚本在凌晨 2 点把 CPU 拉到 95%,只要持续时间短、不影响业务,可能根本不用动;但同一个脚本白天持续 30 分钟不退,就得查它是不是误读了错误的文件路径导致遍历全盘。这类边界情况,工具给不出答案,得结合业务节奏和历史基线来判断。

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热门AI工具

更多
WorkBuddy

一款AI办公效率工具,主要用于腾讯云推出的AI原生桌面智能体工作台,适合需要提升相关任务效率的用户。

豆包大模型

豆包大模型是一款由字节跳动推出的企业级大语言模型服务平台。

墨刀AI
墨刀AI Hot

一款AI图像与设计工具,主要用于产品经理的专属智能体,适合需要提升相关任务效率的用户。

立刻MV
立刻MV Hot

立刻MV是一款AI文本写作工具,AI 音乐视频(MV)创作工具。

DeepSeek

DeepSeek是一款面向对话、写作、编程和推理场景的AI大模型工具。

PixPix
PixPix Hot

PixPix是一款面向电商视觉生产的AI商品图生成工具。

咔片AIPPT

一款在线AI演示文稿制作工具,可根据主题和内容需求辅助生成PPT结构与页面,提高演示材料制作效率。

切问学术

切问学术是一款AI论文写作工具,复旦大学NLP团队推出的AI学术智能体。

讯飞智作

讯飞智作是一款AI视频创作工具,AI文本配音工具,数字人课程、营销视频制作。

相关专题

更多
python中print函数的用法
python中print函数的用法

python中print函数的语法是“print(value1, value2, ..., sep=' ', end=' ', file=sys.stdout, flush=False)”。本专题为大家提供print相关的文章、下载、课程内容,供大家免费下载体验。

2700

2023.09.27

python print用法与作用
python print用法与作用

本专题整合了python print的用法、作用、函数功能相关内容,阅读专题下面的文章了解更多详细教程。

249

2026.02.03

printf用法大全
printf用法大全

php中文网为大家提供printf用法大全,以及其他printf函数的相关文章、相关下载资源以及各种相关课程,供大家免费下载体验。

728

2023.06.20

fprintf和printf的区别
fprintf和printf的区别

fprintf和printf的区别在于输出的目标不同,printf输出到标准输出流,而fprintf输出到指定的文件流。根据需要选择合适的函数来进行输出操作。更多关于fprintf和printf的相关文章详情请看本专题下面的文章。php中文网欢迎大家前来学习。

1009

2023.11.28

堆和栈的区别
堆和栈的区别

堆和栈的区别:1、内存分配方式不同;2、大小不同;3、数据访问方式不同;4、数据的生命周期。本专题为大家提供堆和栈的区别的相关的文章、下载、课程内容,供大家免费下载体验。

5407

2023.07.18

堆和栈区别
堆和栈区别

堆(Heap)和栈(Stack)是计算机中两种常见的内存分配机制。它们在内存管理的方式、分配方式以及使用场景上有很大的区别。本文将详细介绍堆和栈的特点、区别以及各自的使用场景。php中文网给大家带来了相关的教程以及文章欢迎大家前来学习阅读。

2368

2023.08.10

堆和栈的区别
堆和栈的区别

堆和栈的区别:1、内存分配方式不同;2、大小不同;3、数据访问方式不同;4、数据的生命周期。本专题为大家提供堆和栈的区别的相关的文章、下载、课程内容,供大家免费下载体验。

5407

2023.07.18

堆和栈区别
堆和栈区别

堆(Heap)和栈(Stack)是计算机中两种常见的内存分配机制。它们在内存管理的方式、分配方式以及使用场景上有很大的区别。本文将详细介绍堆和栈的特点、区别以及各自的使用场景。php中文网给大家带来了相关的教程以及文章欢迎大家前来学习阅读。

2368

2023.08.10

PixTV官网入口地址合集
PixTV官网入口地址合集

本专题汇总了 PixTV AI 一站式视频创作平台的官方入口与使用教程。无需下载软件,浏览器直接访问即可使用。平台将剧本、图像、视频、声音与剪辑整合在“无限画布”中,接入 GPT Image 2.5、Seedance 2.5 等头部模型。本专题整理了从新建画布、角色锚定、分镜拆分到视频生成与导出的完整操作指南,助你快速上手 AI 短剧与漫剧创作。

20

2026.10.10

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
热门推荐
/
最新课程
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn