Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

第 21 章 系统监控工具

要配置系统,系统管理员通常需要确定可用内存量、可用磁盘空间量、硬盘驱动器的分区方式或正在运行的进程。

21.1. 查看系统进程

21.1.1. 使用 ps 命令

ps 命令允许您显示正在运行的进程的信息。它生成一个静态列表,即,用于执行 命令时正在运行的快照。如果您希望持续更新正在运行的进程列表,请使用 top 命令或 系统监控器 应用程序。

要列出系统中运行的所有进程,包括其他用户拥有的进程,在 shell 提示符后输入以下内容:

ps ax

对于列出的每个进程,ps ax 命令显示进程 ID(PID)、与其关联的终端(TTY)、当前状态(STAT)、模拟 CPU 时间(TIME),以及可执行文件的名称(COMMAND)。例如:

~]$ ps ax
PID TTY   STAT  TIME COMMAND
 1 ?    Ss   0:01 /usr/lib/systemd/systemd --switched-root --system --deserialize 23
 2 ?    S   0:00 [kthreadd]
 3 ?    S   0:00 [ksoftirqd/0]
 5 ?    S>   0:00 [kworker/0:0H]
[output truncated]

要显示每个进程的所有者,请使用以下命令:

ps aux

ps ax 命令提供的信息外,ps aux 显示进程所有者的有效用户名(USER)CPU(%MEM)使用率、以 KB 为单位的虚拟内存大小(VSZ)、非交换的物理内存大小(以 KSS)(RSS)以及进程启动的时间或日期。例如:

~]$ ps aux
USER PID %CPU %MEM  VSZ  RSS TTY  STAT START  TIME COMMAND
root  1 0.3 0.3 134776 6840 ?   Ss  09:28  0:01 /usr/lib/systemd/systemd --switched-root --system --d
root  2 0.0 0.0   0   0 ?   S  09:28  0:00 [kthreadd]
root  3 0.0 0.0   0   0 ?   S  09:28  0:00 [ksoftirqd/0]
root  5 0.0 0.0   0   0 ?   S>  09:28  0:00 [kworker/0:0H]
[output truncated]

您还可以将 ps 命令与 grep 结合使用来查看特定进程是否正在运行。例如,要确定 Emacs 是否 在运行,请输入:

~]$ ps ax | grep emacs
12056 pts/3  S+   0:00 emacs
12060 pts/2  S+   0:00 grep --color=auto emacs

有关可用命令行选项的完整列表,请查看 ps(1)手册页。

21.1.2. 使用 top 命令

top 命令显示系统上正在运行的进程的实时列表。它还显示有关系统正常运行时间、当前 CPU 和内存使用情况或正在运行的进程总数的附加信息,并允许您执行诸如排序列表或终止进程等操作。

要运行 top 命令,在 shell 提示符后输入以下内容:

top

对于列出的每个进程,top 命令显示进程 ID(PID)、进程所有者的有效用户名(USER)、优先级(PR)、nice 值(NI)、进程使用的虚拟内存量(VIRT)、进程使用的非交换物理内存量(RES)。 进程使用的共享内存量(SHR)、进程状态字段 SCPU 和内存(%MEM)使用量的百分比、模拟 CPU 时间(TIME+),以及可执行文件的名称(COMMAND)。例如:

~]$ top
top - 16:42:12 up 13 min, 2 users, load average: 0.67, 0.31, 0.19
Tasks: 165 total,  2 running, 163 sleeping,  0 stopped,  0 zombie
%Cpu(s): 37.5 us, 3.0 sy, 0.0 ni, 59.5 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
KiB Mem : 1016800 total,  77368 free,  728936 used,  210496 buff/cache
KiB Swap:  839676 total,  776796 free,  62880 used.  122628 avail Mem

 PID USER   PR NI  VIRT  RES  SHR S %CPU %MEM   TIME+ COMMAND
 3168 sjw    20  0 1454628 143240 15016 S 20.3 14.1  0:22.53 gnome-shell
 4006 sjw    20  0 1367832 298876 27856 S 13.0 29.4  0:15.58 firefox
 1683 root   20  0 242204 50464  4268 S 6.0 5.0  0:07.76 Xorg
 4125 sjw    20  0 555148 19820 12644 S 1.3 1.9  0:00.48 gnome-terminal-
  10 root   20  0    0   0   0 S 0.3 0.0  0:00.39 rcu_sched
 3091 sjw    20  0  37000  1468  904 S 0.3 0.1  0:00.31 dbus-daemon
 3096 sjw    20  0 129688  2164  1492 S 0.3 0.2  0:00.14 at-spi2-registr
 3925 root   20  0    0   0   0 S 0.3 0.0  0:00.05 kworker/0:0
  1 root   20  0 126568  3884  1052 S 0.0 0.4  0:01.61 systemd
  2 root   20  0    0   0   0 S 0.0 0.0  0:00.00 kthreadd
  3 root   20  0    0   0   0 S 0.0 0.0  0:00.00 ksoftirqd/0
  6 root   20  0    0   0   0 S 0.0 0.0  0:00.07 kworker/u2:0
[output truncated]

表 21.1 “交互式顶部命令” 包含有用的交互式命令,可用于 top如需更多信息,请参阅前(1)man page。

表 21.1. 交互式顶部命令

命令描述

输入,Space

立即刷新显示。

h

显示交互式命令的帮助屏幕.

H ,是吗?

显示窗口和字段组的帮助屏幕.

k

终止进程.系统将提示您输入进程 ID 以及向其发送的信号。

n

更改显示的进程数.系统将提示您输入数字。

u

按用户对列表排序.

M

根据内存使用情况对列表排序.

P

根据 CPU 使用情况对列表排序.

q

终止 实用程序并返回到 shell 提示符。

21.1.3. 使用系统监控器工具

系统监控器 工具的 Processes 选项卡允许您从图形用户界面查看、搜索、更改 的优先级和终止进程。

要从命令行启动 系统监控器 工具,请在 shell 提示符下键入 gnome-system-monitor系统监控 器工具会出现。或者,如果使用 GNOME 桌面,按 Super 键进入"活动概览",键入 "系统监控器",然后按 Enter 键系统监控 器工具会出现。Super 键显示在各种 guis 中,具体取决于键盘和其他硬件,但通常作为 Windows 或 Command 键(通常在 空格栏 的左侧)。

单击 Processes 选项卡,以查看正在运行的进程列表。

图 21.1. 系统监控器 - 进程

系统监控器应用的进程选项卡.

对于列出的每个进程,系统监控器 工具显示其名称(Process Name)、当前状态(Status)、CPU 使用率(% CPU)、nice 值(Nice)、进程ID(ID)、内存使用情况(Memory)、进程正在等待的频道(等待通道),以及会话的其他详细信息(会话)。若要按特定列按升序排列信息,可单击该列的名称。再次单击列的名称,将排序切换为升序和降序。

默认情况下,System Monitor 工具显示当前用户拥有的进程的列表。通过从 View 菜单中选择各种选项,您可以:

  • 仅查看活动进程,
  • 查看所有进程,
  • 查看您的进程,
  • 查看进程依赖关系,

另外,两个按钮可让您:

  • 刷新进程列表,
  • 从列表中选择进程,然后单击"结束进程 "按钮,以结束该进程。