26. 收集系统信息

在你学习如何配置系统之前,你应该学习如何收集基本的系统信息。譬如,你应该知道如何找出关于空闲内存的数量、可用硬盘驱动器空间的数量,硬盘分区方案,以及正在运行进程的信息。本章将讨论如何使用几个简单命令和程序来从你的 Red Hat Linux 系统中检索这类信息。

26.1. 系统进程

ps ax 命令显示一个当前系统进程的列表,该列表中包括其他用户拥有的进程。要显示进程以及它们的所有者,使用 ps aux 命令。该列表是一个静态列表;换一句话说,它是在你启用这项命令时正在运行的进程的快照。如果你需要一个时刻更新的运行进程列表,使用下面描述的 top 命令。

ps 的输出会很长。要防止它快速从屏幕中滑过,你可以把它管道输出给 less 命令:

ps aux | less

你可以使用 ps 命令和 grep 命令的组合来查看某进程是否在运行。譬如,要判定 emacs 是否在运行,使用下面这个命令:

ps ax | grep emacs

top 命令显示了当前正运行的进程以及关于它们的重要信息,包括它们的内存和 CPU 用量。该列表既是真实时间的也是互动的。以下提供了一个 top 的输出示例:

 00:53:01  up 6 days, 14:05,  3 users,  load average: 0.92, 0.87, 0.71
71 processes: 68 sleeping, 2 running, 1 zombie, 0 stopped
CPU states:  18.0% user   0.1% system   16.0% nice   0.0% iowait  80.1% idle
Mem:  1030244k av,  985656k used,   44588k free,       0k shrd,  138692k buff
                    424252k actv,   23220k in_d,  252356k in_c
Swap: 2040212k av,  330132k used, 1710080k free                  521796k cached

  PID USER     PRI  NI  SIZE  RSS SHARE STAT %CPU %MEM   TIME COMMAND
15775 joe        5   0 11028  10M  3192 S     1.5  4.2   0:46 emacs
14429 root      15   0 63620  62M  3284 R     0.5 24.7  63:33 X
17372 joe       11   0  1056 1056   840 R     0.5  0.4   0:00 top
17356 joe        2   0  4104 4104  3244 S     0.3  1.5   0:00 gnome-terminal
    1 root       0   0   544  544   476 S     0.0  0.2   0:06 init
    2 root       0   0     0    0     0 SW    0.0  0.0   0:00 kflushd
    3 root       1   0     0    0     0 SW    0.0  0.0   0:24 kupdate
    4 root       0   0     0    0     0 SW    0.0  0.0   0:00 kpiod
    5 root       0   0     0    0     0 SW    0.0  0.0   0:29 kswapd
  347 root       0   0   556  556   460 S     0.0  0.2   0:00 syslogd
  357 root       0   0   712  712   360 S     0.0  0.2   0:00 klogd
  372 bin        0   0   692  692   584 S     0.0  0.2   0:00 portmap
  388 root       0   0     0    0     0 SW    0.0  0.0   0:00 lockd
  389 root       0   0     0    0     0 SW    0.0  0.0   0:00 rpciod
  414 root       0   0   436  432   372 S     0.0  0.1   0:00 apmd
  476 root       0   0   592  592   496 S     0.0  0.2   0:00 automount

要退出 top,按 [q] 键。

可以和 top 一起使用的互动命令包括:

命令描述
[Space]立即刷新显示
[h]显示帮助屏幕
[k]杀死某进程。你会被提示输入进程 ID 以及要发送给它的信号。
[n]改变显示的进程数量。你会被提示输入数量。
[u]按用户排序。
[M]按内存用量排序。
[P]按 CPU 用量排序。

表 26-1. 互动的 top 命令

窍门窍门
 

类似于 MozillaNautilus 的应用程序具备线程感知(thread-aware) — 多个线程会被创建来处理多个用户或多个请求,而且每个线程都有自己的 PID。按照默认设置,pstop 只显示主(初始)线程。要查看所有线程,使用 ps -m 命令或在 top 中键入[Shift]-[H]组合键。

如果和 top 相比,你更喜欢使用图形化界面,你可以使用 GNOME 系统监视器。要从桌面上启动它,选择面板上的「主菜单」 => 「系统工具」 => 「系统监视器」或在 X 窗口系统的 shell 提示下键入 gnome-system-monitor。然后选择「进程列表」标签。

GNOME 系统监视器允许你在正运行的进程列表中搜索进程,还可以查看所有进程、你拥有的进程、或活跃的进程。

要了解更多关于某进程的情况,选择该进程,然后点击「更多信息」按钮。关于该进程的细节就会显示在窗口的底部。

要停止某进程,选择该进程,然后点击「结束进程」。这有助于结束对用户输入已不再做出反应的进程。

要按指定列的信息来排序,点击该列的名称。信息被排序的那一列会用深灰色显示。

按照默认设置,GNOME 系统监控器不显示线程。要改变这个首选项,选择「编辑」 => 「首选项」,点击「进程列表」标签,然后选择「显示线程」。首选项还允许你配置更新间隔;每个进程默认显示的信息;以及系统监视器图表的颜色。

图 26-1. GNOME 系统监视器