Linux 基础-查看进程命令 ps 和 top

简介: Linux 基础-查看进程命令 ps 和 top

1,使用 ps 命令找出 CPU 占用高的进程

ps 是 进程状态 (process status) 的缩写,它能显示系统中活跃的/运行中的进程的信息。它提供了当前进程及其详细信息,诸如用户名、用户 IDCPU 使用率、内存使用、进程启动日期时间、命令名等等的快照。只打印命令名字而不是命令的绝对路径,以运行下面的格式 ps 命令:

~$ ps -eo pid,ppid,%mem,%cpu,comm --sort=-%cpu | head
复制代码

运行结果如下:

网络异常,图片无法展示
|


上面命令语句的各部分参数解释:

  • ps:命令名字
  • -e:选择所有进程
  • -o:自定义输出格式
  • –sort=-%cpu:基于 CPU 使用率对输出结果排序
  • head:显示结果的前 10 行
  • PID:进程的 ID
  • PPID:父进程的 ID
  • %MEM:进程使用的 RAM 比例
  • %CPU:进程占用的 CPU 比例
  • Command:进程名字

2,通过 top 命令定位占用 cpu 高的进程

  • 查看 cpu 占用最高进程(查看前3位):top,然后按下 M(大写 M)。
  • 查看内存占用最高进程:top,然后按下 P(大写 P )。
  • 可视化查看所有用户所有进程使用情况:ps axf

在所有监控 Linux 系统性能的工具中,Linuxtop 命令是最好的也是最知名的一个(htop 是其升级版)。top 命令提供了 Linux 系统运行中的进程的动态实时视图。它能显示系统的概览信息和 Linux 内核当前管理的进程列表。它显示了大量的系统信息,如 CPU 使用、内存使用、交换内存、运行的进程数、目前系统开机时间、系统负载、缓冲区大小、缓存大小、进程 PID 等等。默认情况下,top 命令的输出结果按 CPU 占用进行排序,每 5 秒中更新一次结果。

ps -ef                 # 查看所有进程
top                    # 实时显示进程状态
复制代码

Linux 系统下执行 top 命令得到以下结果(第一列为进程的 PID,第二列为进程所属用户):

网络异常,图片无法展示
|


上图各个参数的意义:

  • PID:进程的ID
  • USER:进程所有者
  • PR:进程的优先级别,越小越优先被执行
  • NInice:值
  • VIRT:进程占用的虚拟内存
  • RES:进程占用的物理内存
  • SHR:进程使用的共享内存
  • S:进程的状态。S表示休眠,R表示正在运行,Z表示僵死状态,N表示该进程优先值为负数
  • %CPU:进程占用CPU的使用率
  • %MEM:进程使用的物理内存和总内存的百分比
  • TIME+:该进程启动后占用的总的CPU时间,即占用CPU使用时间的累加值。
  • COMMAND:进程启动命令名称

通过上图可以看出排在一行的进程 PID 2438占用 cpu 过高,定位到了进程 id。如果只想观察 进程PID 2438的 CPU和内存以及负载情况,可以使用以下命令:

top -p 2438
复制代码


结果如下:

网络异常,图片无法展示
|


还可以通过 top 命令定位问题进程中每个线程占用 cpu 情况,如查看进程 PID 2438 的每一个线程占用 cpu 的情况,使用如下命令:

top -p 2438 -H
复制代码

结果如下(单线程,所以只显示一行):

网络异常,图片无法展示
|


3,htop 系统监控与进程管理软件

top 只提供最消耗资源的进程列表不同,htop 提供所有进程的列表,并且使用彩色标识出处理器、swap 和内存状态。可以通过 htop 查看单个进程的线程,然后按 <F2> 来进入 htop 的设置菜单。选择“设置”栏下面的“显示选项”,然后开启“树状视图”和“显示自定义线程名”选项。按 <F10> 退出设置。

网络异常,图片无法展示
|


网络异常,图片无法展示
|


4,参考资料

线上linux系统故障排查之一:CPU使用率过高


相关文章
|
6月前
|
监控
ps 进程中的字段信息
该表介绍了进程管理中的关键字段,包括进程ID、用户、CPU与内存使用情况、运行时间、状态及优先级等信息,用于监控和分析系统中各进程的资源占用与运行状态。
267 10
|
Linux 数据库 Perl
【YashanDB 知识库】如何避免 yasdb 进程被 Linux OOM Killer 杀掉
本文来自YashanDB官网,探讨Linux系统中OOM Killer对数据库服务器的影响及解决方法。当内存接近耗尽时,OOM Killer会杀死占用最多内存的进程,这可能导致数据库主进程被误杀。为避免此问题,可采取两种方法:一是在OS层面关闭OOM Killer,通过修改`/etc/sysctl.conf`文件并重启生效;二是豁免数据库进程,由数据库实例用户借助`sudo`权限调整`oom_score_adj`值。这些措施有助于保护数据库进程免受系统内存管理机制的影响。
|
Linux Shell
Linux 进程前台后台切换与作业控制
进程前台/后台切换及作业控制简介: 在 Shell 中,启动的程序默认为前台进程,会占用终端直到执行完毕。例如,执行 `./shella.sh` 时,终端会被占用。为避免不便,可将命令放到后台运行,如 `./shella.sh &`,此时终端命令行立即返回,可继续输入其他命令。 常用作业控制命令: - `fg %1`:将后台作业切换到前台。 - `Ctrl + Z`:暂停前台作业并放到后台。 - `bg %1`:让暂停的后台作业继续执行。 - `kill %1`:终止后台作业。 优先级调整:
1220 5
|
缓存 运维 监控
【运维必备知识】Linux系统平均负载与top、uptime命令详解
系统平均负载是衡量Linux服务器性能的关键指标之一。通过使用 `top`和 `uptime`命令,可以实时监控系统的负载情况,帮助运维人员及时发现并解决潜在问题。理解这些工具的输出和意义是确保系统稳定运行的基础。希望本文对Linux系统平均负载及相关命令的详细解析能帮助您更好地进行系统运维和性能优化。
1209 3
|
存储 Docker 容器
在Docker中,容器退出后,通过docker ps命令查看不到,数据会丢失么?
在Docker中,容器退出后,通过docker ps命令查看不到,数据会丢失么?
1134 15
|
调度
crash命令 —— ps
crash命令 —— ps
|
监控 Linux
性能分析之 Linux 系统中 ps&top 中 CPU 百分比不一致?
【8月更文挑战第18天】性能分析之 Linux 系统中 ps&top 中 CPU 百分比不一致?
650 5
|
算法 Linux 调度
探索进程调度:Linux内核中的完全公平调度器
【8月更文挑战第2天】在操作系统的心脏——内核中,进程调度算法扮演着至关重要的角色。本文将深入探讨Linux内核中的完全公平调度器(Completely Fair Scheduler, CFS),一个旨在提供公平时间分配给所有进程的调度器。我们将通过代码示例,理解CFS如何管理运行队列、选择下一个运行进程以及如何对实时负载进行响应。文章将揭示CFS的设计哲学,并展示其如何在现代多任务计算环境中实现高效的资源分配。
|
监控 Unix Linux
ps aux 命令使用查看内存、cpu使用排名与top的区别
ps aux 命令使用查看内存、cpu使用排名与top的区别
2538 1
|
开发工具
【Azure 环境】使用Microsoft Graph PS SDK 登录到中国区Azure, 命令Connect-MgGraph -Environment China xxxxxxxxx 遇见登录错误
【Azure 环境】使用Microsoft Graph PS SDK 登录到中国区Azure, 命令Connect-MgGraph -Environment China xxxxxxxxx 遇见登录错误
402 0