百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术文章 > 正文

linux进程监控必备的五个命令行工具

ahcoder 2025-03-18 09:41 12 浏览

本文介绍了 Linux 下常用的五个进程监控命令行工具ps、top、htop、atop、isof。这些工具可以帮助用户监控系统资源的使用情况,包括 CPU、内存、磁盘 I/O 等方面的信息。这些工具可以用来查看系统中运行的进程信息,以及实时监控系统资源的使用情况。它们适用于需要详细监控系统资源使用情况的场景,比如系统管理员需要监控服务器的负载情况,或者开发人员需要监控应用程序的资源占用情况等。

使用这些工具可以快速了解系统的运行情况,发现可能存在的性能问题,从而采取相应的优化措施。例如,如果发现某个进程的 CPU 占用率过高,可以通过对该进程进行优化来降低 CPU 的使用率,从而提高系统的性能。另外,这些工具也可以用来监控系统的安全性,例如通过查看系统中运行的进程和文件,可以发现潜在的安全风险,并及时采取相应的措施进行处理。

ps:

ps显示当前系统进程的快照,是一个功能强大的工具,可以输出详细的进程信息。

  • 优点:功能强大,可以输出详细的进程信息,可用于查看系统进程的信息。
  • 缺点:输出格式较为复杂,需要一定的使用经验。
  • 适用场景:需要查看系统进程信息的场景。

ps 命令的使用示例如下:

  PID TTY          TIME CMD
  292 pts/0    00:00:00 bash
  766 pts/0    00:00:00 ps

输出结果中的各个字段含义如下:

  • PID:进程 ID。
  • TTY:进程所在的终端。
  • TIME:进程占用 CPU 的时间。
  • CMD:进程的命令行。

在本例中,输出结果显示了当前系统中运行的所有进程的 PID、所在终端、CPU 时间和命令行。其中,第一行是列名,后面每一行都表示一个进程的信息。例如,第二行表示进程 ID 为 292 的 bash shell 进程,该进程在终端 pts/0 上运行,已占用 CPU 时间 0 秒,命令为 bash。第三行表示进程 ID 为 766 的 ps 进程,该进程在终端 pts/0 上运行,已占用 CPU 时间 0 秒,命令为 ps。

使用 ps 命令可以获取当前系统中运行的进程信息,可以通过不同的参数来控制输出内容和格式。这些参数包括 a(显示所有进程)、u(显示进程的详细信息)、x(显示与当前用户无关的进程)等。例如,ps aux 命令可以显示系统中所有进程的详细信息,包括进程的 CPU 占用率、内存占用率、启动时间、命令行等信息。

top:

Top实时显示系统中各个进程的资源占用情况,是一个常用的系统监视工具。

  • 优点:实时显示系统中各个进程的资源占用情况,简单易用。
  • 缺点:不提供详细的资源使用情况。
  • 适用场景:需要实时监控系统资源的使用情况的场景。

使用 top 命令,可以实时显示系统中各个进程的资源占用情况。在命令行中输入 top 后,可以看到类似以下的结果:

top - 20:07:36 up  5:35,  1 user,  load average: 0.25, 0.31, 0.29
Tasks: 205 total,   1 running, 204 sleeping,   0 stopped,   0 zombie
%Cpu(s):  3.6 us,  0.4 sy,  0.0 ni, 95.7 id,  0.1 wa,  0.0 hi,  0.1 si,  0.0 st
MiB Mem :  15930.2 total,   5946.9 free,   5696.4 used,   3286.9 buff/cache
MiB Swap:  16384.0 total,  16384.0 free,      0.0 used.   9206.0 avail Mem

    PID USER      PR  NI    VIRT    RES    SHR S  %CPU  %MEM     TIME+ COMMAND
   1435 root      20   0   25.9g  20.2g  16.8g S  20.5  67.0   8:24.30 java
   2001 root      20   0  263.5m  87.5m  37.4m S   6.0   0.5   0:44.41 Xorg
   2731 root      20   0  567.5m 160.0m  89.7m S   4.0   1.0   0:50.20 gnome-shell
   2212 root      20   0  703.7m  62.7m  42.8m S   3.0   0.4   0:31.15 gnome-terminal-
   1826 root      20   0  515.6m  44.4m  31.7m S   2.0   0.3   0:10.16 gsd-xsetting
   1816 root      20   0  269.1m  23.8m  15.6m S   1.0   0.2   0:02.80 gsd-color
   1856 root      20   0  367.6m  29.4m  20.7m S   1.0   0.2   0:05.54 gnome-settings-
   2993 root      20   0   18.8g  12.1g  10.1g S   1.0  76.8   5:19.37 java
   7061 root      20   0  137.3m  17.5m  11.5m S   1.0   0.1   0:00.17 sshd

其中,第一行显示了系统的运行时间、负载均衡等信息;

第二行显示了系统中运行的进程数量及其状态;

第三行显示了 CPU 的使用情况;

第四行显示了内存的使用情况;

从第六行开始,每行显示了一个进程的详细信息,包括进程 ID、用户、优先级、虚拟内存、实际内存、共享内存、进程状态、CPU 占用率、内存占用率、运行时间和进程名称等信息。

htop:

类似于 top,但是提供了更多的交互式功能和更友好的界面。

  • 优点:提供了更多的交互式功能和更友好的界面。
  • 缺点:相比于 top,可能会占用更多的系统资源。
  • 适用场景:需要查看系统资源占用情况的场景。

htop 命令可以提供与 top 类似的实时进程查看信息,但是提供了更多的交互式功能和更友好的界面。以下是 htop 命令的输出样例:

  1 [||||||||||||||||||||||||||||||||||||||||||||||||| 100.0%]   Tasks: 162, 479 thr; 1 running
  2 [||||||||||||||||||||||||||||||||||||||||||||||||| 100.0%]   Load average: 0.32 0.31 0.28
  Mem[|||||||||||||||||||||||||||||||||||||||||||||||7867/15930MB]   Uptime: 00:12:49
  Swp[||||||||||||||||||||||||||||||||||||||||||||||||||||||0/16384MB]

  PID USER      PRI  NI  VIRT   RES   SHR S CPU% MEM%   TIME+  Command
  1350 root      20   0  25.9G 20.2G 16.8G S  2.0 67.1  8h25:33 java
  2675 user      20   0 632.0M131.4M 77.4M S  0.0  0.8  0:05.19 gnome-terminal-
  1    root      20   0 168656 5352  3080 S  0.0  0.0  0:01.60 systemd
  2    root      20   0 0      0     0    S  0.0  0.0  0:00.03 kthreadd
  3    root      0    - 0      0     0    I  0.0  0.0  0:03.77 rcu_gp
  4    root      0    - 0      0     0    I  0.0  0.0  0:00.00 rcu_par_gp
  6    root      0    - 0      0     0    I  0.0  0.0  0:00.00 kworker/0:0H-kblockd
  7    root      0    - 0      0     0    S  0.0  0.0  0:17.97 rcu_sched
  8    root      0    - 0      0     0    S  0.0  0.0  0:00.00 lru-add-drain
  9    root      0    - 0      0     0    S  0.0  0.0  0:10.86 rcu_bh
  10   root      0    - 0      0     0    S  0.0  0.0  0:00.00 migration/0
  11   root      0    - 0      0     0    S  0.0  0.0  0:00.00 ksoftirqd/0

其中,第一行显示了 CPU 使用情况的总体情况,包括所有 CPU 的使用情况及其使用率;

第二行显示了系统负载的情况,包括 1 分钟、5 分钟、15 分钟负载均衡的情况;

第三行显示了内存的使用情况,包括已使用内存、可用内存和交换空间的使用情况;

第四行显示了交换空间的使用情况;

从第六行开始,每行显示了一个进程的详细信息,包括进程 ID、用户、进程优先级、进程 nice 值、虚拟内存、实际内存、共享内存、进程状态、CPU 占用率、内存占用率、运行时间和进程名称等信息。

atop:

提供了比 top 和 htop 更详细的资源使用情况,包括 CPU、内存、磁盘 I/O 等方面的信息。

  • 优点:提供了比 top 和 htop 更详细的资源使用情况,包括 CPU、内存、磁盘 I/O 等方面的信息。
  • 缺点:输出格式较为复杂,需要一定的使用经验。
  • 适用场景:需要详细监控系统资源使用情况的场景。

atop 命令可以提供比 top 和 htop 更详细的资源使用情况,主要包括 CPU、内存、磁盘 I/O 等方面的信息。使用 atop 命令的输出格式较为复杂,需要一定的使用经验。以下是 atop 命令的输出样例:

ATOP - localhost.localdomain  2021/07/16  14:32:11  --------------------------- 10s elapsed
PRC |  sys   12m   90MB |  user   8m   31MB |  #proc    241 |  #trun      1 |  #tslpi    324 |  #tslpu      0 |  #zombie    0 |  clones    142 |  #exit      0 |
CPU |  sys     17% |  user     12% |  irq       0% |  idle     70% |  wait      0% |  steal     0% |
cpu |  sys     17% |  user     12% |  irq       0% |  idle     70% |  cpu000 w  0% |  cpu001 w  0% |
CPL |  avg1    0.08 |  avg5    0.09 |  avg15   0.08 |  csw | 11020 | intr |  1287 |
MEM |  used    88MB |  buff   1.3MB |  cache   44MB |  free  2006MB |  swpused    0MB |  swpfree    0MB |
DSK |              sda |  busy      3% |  read    33 |  write   69 |  KiB/r     50 |  KiB/w    400 |  MBr/s   0.00 |  MBw/s   0.00  |  avio 0.33 ms |
NET |  transport     |  tcpi    204 |  tcpo    204 |  udpi      0 |  udpo      0 |  tcpao      0 |  tcppo      0 |  tcprs      0 |  tcpie      0 |
NET |  network       |  ipi     252 |  ipo     252 |  ipfrw      0 |  deliv    252 |                     |  icmpi      0 |  icmpo      0 |
NET |  wlan0    ---- |  pcki    127 |  pcko    117 |  sp    54.0 Mbps |  si    0.0 B/s |  so    0.0 B/s |  er    0 |

其中,第一行显示了当前系统时间;

第二行显示了系统进程的基本信息,包括系统 CPU 时间占用率、用户 CPU 时间占用率、进程数、正在运行的进程数、进程数、进程数、僵尸进程数、克隆进程数、退出进程数等信息;

第三行显示了 CPU 时间占用率的详细信息,包括系统 CPU 时间占用率、用户 CPU 时间占用率、中断 CPU 时间占用率、空闲 CPU 时间占用率、等待 CPU 时间占用率、虚拟化 CPU 时间占用率等信息;

第四行显示了负载均衡的信息,包括 1 分钟、5 分钟、15 分钟负载均衡、上下文切换次数、中断次数等信息;

第五行显示了内存的使用情况,包括已使用内存、缓存内存、缓存内存、可用内存、已使用交换区、可用交换区等信息;

第六行显示了磁盘 I/O 活动情况,包括磁盘名称、磁盘忙碌率、读取次数、写入次数、每秒读取字节数、每秒写入字节数、每秒读取 MB 数、每秒写入 MB 数、平均 I/O 时间等信息;

第七行显示了网络传输层的信息,包括 TCP 连接数、TCP 连接数、UDP 发送次数、UDP 接收次数、TCP ACK 数据包数、TCP PUSH 数据包数、TCP 重传数据包数、TCP 不可达数据包数等信息;

第八行显示了网络数据链路层的信息,包括 IP 数据包数、IP 数据包数、IP 转发数、IP 数据包交付次数、ICMP 发送次数、ICMP 接收次数等信息;

最后一行显示了网络接口的信息,包括网络接口名称、发送数据包数、接收数据包数、速率、接收数据速率、发送数据速率、错误数等信息。

iotop:

监视磁盘 I/O 活动,可以帮助用户找到磁盘 I/O 瓶颈。

  • 优点:提供了更详细的磁盘 I/O 信息,可以帮助用户找到磁盘 I/O 瓶颈。
  • 缺点:只能监视磁盘 I/O 活动,不能提供其他资源使用情况。
  • 适用场景:需要找到磁盘 I/O 瓶颈的场景。

以下是一个模拟 iotop 命令的输出样例:

Total DISK READ :      25.95 K/s | Total DISK WRITE :      54.31 K/s
Actual DISK READ:      25.95 K/s | Actual DISK WRITE:      54.31 K/s
  TID  PRIO  USER     DISK READ  DISK WRITE  SWAPIN     IO>    COMMAND
  213 be/3 root          0.00 B     32.00 K  0.00 %  0.00 % [jbd2/sda1-8]
  436 be/4 root          0.00 B     24.00 K  0.00 %  0.00 % [ext4-rsv-conver]
  404 be/4 root          0.00 B      8.00 K  0.00 %  0.00 % [ext4-rsv-conver]
  437 be/4 root          0.00 B      4.00 K  0.00 %  0.00 % [ext4-rsv-conver]
28319 be/4 user          0.00 B      0.00 B  0.00 %  0.00 % sshd: user@pts/0

其中,第一行显示了总的磁盘读写速度;

第二行显示了实际的磁盘读写速度;

从第三行开始,每行显示了一个进程的详细信息,包括进程 ID、优先级、用户、磁盘读速度、磁盘写速度、交换区读速度、IO 操作类型、进程名称等信息。

结论

对于 Linux 系统管理员来说,了解并掌握这些进程监控命令行工具是非常必要的。每个命令行工具都有其特定的优点和缺点,可以根据实际需要选择使用。通过这些工具,可以准确地了解系统资源使用情况,及时发现问题并进行优化,确保系统的稳定和高效运行。

相关推荐

ARM64内核内存布局图(ARM64内核内存布局图解)

ARM64架构处理器采用48位物理寻址机制,最大可以寻找到256TB的物理地址空间。对于目前的应用来说已经足够了,不需要扩展到64位的物理地址寻址。虚拟地址也同样最大支持48位支持,所以在处理器的架构...

ARM64 linux 调试串口通信(ARM64 linux 调试串口通信实验报告)

ARM64linux调试串口通信随着国产机普及很多工作也转移到了新平台上,以前调试设备用的笔记本电脑也换成新国产ARM64架构的了。本文以绿联CM204USB-A转RJ45Console调试线...

Gentoo Linux 终止对 Itanium IA-64 体系的支持

GentooLinux是最后几个继续维护Itanium(IA-64)架构构建的Linux发行版之一,但现在这些已停产的英特尔处理器正在逐步淘汰。由于Linux6.7内核放弃了对Itan...

如何检查 Linux 系统是 32 位还是 64 位?这9个命令查的又快又准!

在Linux系统中,位数(bit)通常指的是CPU架构的位宽,即CPU一次能够处理的数据量。32位系统和64位系统在内存寻址能力、计算性能和软件支持上存在显著差异:「32位系统」:...

调出好画面!带你玩转飞凌嵌入式AM62x开发板的显示接口

来源:飞凌嵌入式官网“显示”是嵌入式开发板最为重要的功能之一,能够支持更多种类、更高规格的显示接口,意味着它能够应对的使用场景也更加广泛。每一款嵌入式开发板在出厂前都会做屏幕调试,但在客户的实际项目开...

带你玩转AM62x开发板的显示接口——LVDS的显示和修改方式

此前小编已为大家介绍过OK6254-C开发板的RGB显示和修改方式,今天将继续为大家介绍OK6254-C开发板的LVDS显示和修改方式。话不多说,我们进入正题。1、LVDS接口规格飞凌嵌入式OK62...

AM335x继任者?AM6254性能解析(am2361p)

飞凌嵌入式FET6254-C核心板基于TISitaraTMAM62x系列工业级处理器设计开发,采用ARMCortex-A53架构,主频最高可达1.4GHz;并集成了丰富的接口,可广泛应用于的工...

如何在 Linux 发行版中安装微信和 QQ?

很多人因为工作沟通的原因需要用到微信和QQ,那么如何在Linux发行版中安装微信和QQ呢?以下是一些尝试的解决方法。QQ上一个版本的QQLinux版还是在2009年,而在现在,基于N...

MySQL:物理备份工具XBK(mysql 备份方案)

XBK的优缺点:XBK(PerconaXtraBackup)优点:1.免费2.热备:备份期间不阻塞innodb和XtraDB表,但会阻塞Myisam表3.物理备份:备份恢复快XBK缺点:1.不支持远...

AMD锐龙9 9950X CPU AIDA64跑分曝光:比7950X最高快45%

IT之家6月26日消息,Anandtech论坛网友igor_kavinski本周一发布帖子,分享了AMD旗舰锐龙99950X处理器的AIDA64基准测试跑分,与当前基于Z...

qemu linux内核(5.10.209)开发环境搭建

版本信息宿主机:ubuntu20.04.6LTS(FocalFossa)虚拟机:ubuntu20.04.6LTS(FocalFossa)安装宿主机的步骤省略,和一般的在vmware中安...

iPhone 7成刷机神器,成功运行乌班图、Linux、安卓

在智能机刚开始流行的时候,很多手机发烧友都喜欢刷机,当时民间大神们制作了特别多优化的ROM。后来随着手机硬件的逐步提升,以及厂商们对系统的大力优化,让大家对于刷机的兴趣也越来越少。不知道大家还记得这部...

12 款最佳免费开源 Linux 渲染器 | 火狐浏览器 130.0 版本更新

12款最佳免费开源Linux渲染器Linux的一大优势在于其拥有丰富的开源软件,可以满足艺术家、摄影师、动画师和设计师的需求。凭借价格低廉的硬件、免费的软件以及少量的才能和灵感,任何人都可以创...

Linux中xargs 命令详解与实用场景

xargs是Linux系统中常用的命令行工具之一,它能够从标准输入构造参数列表并传递给其他命令使用,是处理批量数据操作时的重要利器。一、xargs的基本语法xargs[OPTION]...[C...

Linux 磁盘扩容(非LVM)方式(linux扩容lvm磁盘容量)

今天接到一个客户的需求,CentOS的/分区容量太小了,OA系统所有的数据都在这下面,由于当时前同事给客户安装系统时采用了标准分区,而不是LVM逻辑卷,所以不支持在线扩容。df-hT查看磁盘使...