0

0

linux怎么查看cpu占用排行_linux查找高负载进程【命令】

尼克

尼克

发布时间:2026-03-17 15:06:01

|

291人浏览过

|

来源于php中文网

原创

默认按 CPU 占用实时降序需启动后按 Shift+P,或直接运行 top -o %CPU;ps aux --sort=-%cpu 提供瞬时快照,但统计方式与 top 不同。

linux怎么查看cpu占用排行_linux查找高负载进程【命令】

top 命令默认排序不直观,怎么让它按 CPU 占用实时降序?

默认 top 启动后按 PID 排序,根本看不出谁在吃 CPU。得手动切到按 %CPU 排——按 Shift + P(大写 P),不是小写 p。这个键位容易按错,按完会看到顶部显示 Sort field: %CPU,且进程列表立刻重排。

注意:top 是动态刷新的,排序状态不会跨会话保留;每次新开 top 都要重新按一次 Shift + P。如果想一启动就按 CPU 排,可以加参数:top -o %CPU

  • 别用 top -p PID 查单个进程——它会屏蔽其他进程,反而看不到“谁最高”
  • top 默认只显示用户态 CPU(%CPU 列),内核态时间含在里面,但不单独拆分
  • 刷新间隔太短(如 -d 0.1)会让终端卡顿,生产环境建议保持默认 3 秒或设为 -d 1

ps aux --sort=-%cpu 输出一次性快照,但结果为什么和 top 不完全一致?

pstop 统计周期不同:ps 是瞬时采样,top 是过去几秒的滚动平均。所以 ps aux --sort=-%cpu | head -10 拿到的是“此刻 CPU 使用率估算值”,可能漏掉刚爆发又结束的短时峰值。

常用组合命令:ps aux --sort=-%cpu | head -n 11(因为第一行是表头)。注意 --sort=-%cpu 的负号不能丢,否则是升序。

  • ps 的 %CPU 是归一化到单核的百分比(比如 4 核机器上满载一个线程显示约 25%),而 top 默认显示的是“占所有 CPU 时间的百分比”(满载单线程≈100%/核数)
  • 某些容器环境(如 Docker)中,ps 可能受 cgroups 限制,显示值被截断或偏高
  • 避免写成 ps aux | sort -k3 -nr | head——sort 解析字段易出错(%CPU 在第 3 列?实际是第 3 列是 %CPU,但字段间空格不固定,用 sort 可靠性远低于 --sort 原生参数)

htop 更友好,但为什么装完运行报 command not found?

htop 不是所有 Linux 发行版默认安装的。CentOS/RHEL 需先启用 EPEL:sudo yum install epel-release && sudo yum install htop;Ubuntu/Debian 直接 sudo apt install htop

装好后,htop 默认就按 CPU 降序,支持鼠标点击列头切换排序,还能直接 F9 杀进程。但它依赖 ncurses,若在极简容器或 recovery shell 中运行失败,就是缺这个库。

  • 别用 alias top=htop 全局替换——有些运维脚本或监控工具硬编码调用 top -b -n1,替换成 htop 会直接报错退出
  • htop 显示的 CPU% 是每个线程单独计算的,多线程进程会拆成多行;而 ps 默认按进程聚合,数值表现不同
  • 如果 htop 启动后全是空白或乱码,大概率是终端 $TERM 变量不对,临时设成 export TERM=xterm-256color 再试

查到高 CPU 进程后,怎么快速定位是哪段代码或哪个线程干的?

光看 PIDCOMMAND 不够,尤其 Java、Node.js 这类运行时进程。先用 ps -T -p PID 查线程级 CPU 占用(-T 显示线程,-p 指定进程),再结合 top -H -p PID-H 开启线程视图)确认具体线程 ID(LWP)。

对 Java 进程,下一步通常是:jstack PID > jstack.out,然后搜 java.lang.Thread.State: RUNNABLE 和高 CPU 的 LWP(转成十六进制后匹配 nid);对 Python,可用 py-spy record -p PID -o profile.svg(需提前装 py-spy)。

  • 别直接 kill -3 PID 对非 Java 进程——这信号语义不统一,可能没日志,甚至被忽略
  • strace -p PID -c 能统计系统调用耗时,但开销大,线上慎用;更轻量的是 perf top -p PID(需 kernel-debuginfo 支持)
  • 容器里查宿主机 PID 时,注意 /proc/PID 下看到的是容器视角的 PID,和 docker top 输出的 PID 可能不一致——得用 docker inspect 容器名 | grep Pid 找真实宿主机 PID
事情说清了就结束

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

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

WorkBuddy
WorkBuddy

腾讯云推出的AI原生桌面智能体工作台

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
sort排序函数用法
sort排序函数用法

sort排序函数的用法:1、对列表进行排序,默认情况下,sort函数按升序排序,因此最终输出的结果是按从小到大的顺序排列的;2、对元组进行排序,默认情况下,sort函数按元素的大小进行排序,因此最终输出的结果是按从小到大的顺序排列的;3、对字典进行排序,由于字典是无序的,因此排序后的结果仍然是原来的字典,使用一个lambda表达式作为key参数的值,用于指定排序的依据。

410

2023.09.04

线程和进程的区别
线程和进程的区别

线程和进程的区别:线程是进程的一部分,用于实现并发和并行操作,而线程共享进程的资源,通信更方便快捷,切换开销较小。本专题为大家提供线程和进程区别相关的各种文章、以及下载和课程。

806

2023.08.10

Python 多线程与异步编程实战
Python 多线程与异步编程实战

本专题系统讲解 Python 多线程与异步编程的核心概念与实战技巧,包括 threading 模块基础、线程同步机制、GIL 原理、asyncio 异步任务管理、协程与事件循环、任务调度与异常处理。通过实战示例,帮助学习者掌握 如何构建高性能、多任务并发的 Python 应用。

379

2025.12.24

java多线程相关教程合集
java多线程相关教程合集

本专题整合了java多线程相关教程,阅读专题下面的文章了解更多详细内容。

33

2026.01.21

C++多线程相关合集
C++多线程相关合集

本专题整合了C++多线程相关教程,阅读专题下面的的文章了解更多详细内容。

31

2026.01.21

C# 多线程与异步编程
C# 多线程与异步编程

本专题深入讲解 C# 中多线程与异步编程的核心概念与实战技巧,包括线程池管理、Task 类的使用、async/await 异步编程模式、并发控制与线程同步、死锁与竞态条件的解决方案。通过实际项目,帮助开发者掌握 如何在 C# 中构建高并发、低延迟的异步系统,提升应用性能和响应速度。

107

2026.02.06

C++多线程并发控制与线程安全设计实践
C++多线程并发控制与线程安全设计实践

本专题围绕 C++ 在高性能系统开发中的并发控制技术展开,系统讲解多线程编程模型与线程安全设计方法。内容包括互斥锁、读写锁、条件变量、原子操作以及线程池实现机制,同时结合实际案例分析并发竞争、死锁避免与性能优化策略。通过实践讲解,帮助开发者掌握构建稳定高效并发系统的关键技术。

11

2026.03.16

Java 并发编程高级实践
Java 并发编程高级实践

本专题深入讲解 Java 在高并发开发中的核心技术,涵盖线程模型、Thread 与 Runnable、Lock 与 synchronized、原子类、并发容器、线程池(Executor 框架)、阻塞队列、并发工具类(CountDownLatch、Semaphore)、以及高并发系统设计中的关键策略。通过实战案例帮助学习者全面掌握构建高性能并发应用的工程能力。

102

2025.12.01

抖漫入口地址合集
抖漫入口地址合集

本专题整合了抖漫入口地址相关合集,阅读专题下面的文章了解更多详细地址。

0

2026.03.17

热门下载

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

精品课程

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

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号