7.3 进程的观察:ps、top
如果想要查看进程,了解当前进程的情况就需要用到相关命令了。其中,ps命令就是一款非常强大的进程查看工具。该命令语法格式如下:
- [root@localhost ~]# ps
- 参数
- #ps
- 的参数非常多,
- 在此列出一些常用的参数
- #-A
- 列出所有的进程,和-e
- 有同样的效果
- #-a
- 列出不和本终端有关的所有进程
- #-w
- 显示加宽可以显示较多信息
- #-u
- 显示有效使用者相关的进程
- #aux
- 显示所有包含其他使用者的进程
- #
- 使用aux
- 参数的输出:
- #USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
- #USER:
- 进程拥有者
- #PID: pid
- #%CPU:
- 占用的CPU
- 使用率
- #%MEM:
- 占用的内存使用率
- #VSZ:
- 占用的虚拟内存大小
- #RSS:
- 占用的内存大小
- #TTY:
- 运行的终端的号码
- #STAT:
- 进程状态:
- #D:
- 不可中断
- #R:
- 运行中
- #S:
- 休眠
- #T:
- 暂停
- #Z:
- 僵尸进程
- #W:
- 没有足够的内存可分配
- #<:
- 高优先级的行程
- #N:
- 低优先级的行程
- #START:
- 进程开始时间
- #TIME:
- 累计使用CPU
- 的时间
- #COMMAND:
- 执行的命令
命令ps输出的只是当前查询状态下进程瞬间的状态信息,如果要想及时动态地查看进程就需要使用top命令了。top命令提供了实时的系统状态监控,可以按照CPU使用、内存使用、执行时间等指标对进程进行排序。图7-1是运行top命令时的输出。
图7-1 运行top命令时的输出
图7-1中的第一行是服务器基础信息,包括top命令的刷新时间为13:37:47,系统已经启动的时间为100天19个小时又两分钟,当前有1个用户登录,系统的负载(load average)为:最近1分钟内的平均系统负载为0.05,最近5分钟内的平均系统负载为0.02,最近15分钟内的平均系统负载为0.00(这说明系统基本是闲置的)。
第二行是当前系统进程概况,一共有69个进程,其中1个正在运行中,68个处于休眠,没有停止的进程,没有僵尸进程。
第三行是CPU信息,us代表用户空间占用的CPU百分比,sy代表内核空间占用的CPU百分比,ni代表改变过优先级的进程占用的CPU百分比,id代表空闲CPU百分比,wa代表I/O等待百分比,hi代表硬中断占用的CPU百分比,si代表软中断占用的CPU百分比。现代计算机一般有多核CPU,要想查看每个逻辑CPU的使用情况,可以在top显示界面中按数字键1。
第四行是物理内存的使用状态,从左到右分别表示物理内存总量、已使用的内存、空闲内存、缓存使用的内存。
第五行是虚拟内存的使用状态,其中,前三列和物理内存的意义一致,最后一个是代表缓冲的交换区总量。
再往下的所有信息就是动态的进程信息了,表7-1中给出了这部分每一列的含义。
进程信息区中的信息只是top默认显示的11个字段,如果要显示更多的字段,可以在top显示界面中按字母键f。按该键后,前面打了*号的就是当前显示的字段,要想显示更多的字段可以按一下字段前面的字母对应的键。比如,本例中按了b和c键,选中后按回车键即可返回top显示界面,如图7-2所示。
另外,默认情况下top显示的进程是按照CPU使用率来进行排序的,如果要另选排序规则怎么办呢?可以按大写字母O键进入排序选择页,然后按一下字段前面的字母对应的键来选择排序字段,之后按回车键返回即可,如图7-3所示。
表7-1 top命令动态进程信息中每列的含义
图7-2 显示更多动态字段
图7-3 选择排序方式
在top显示页面中还有一些快捷键可以使用,比如按字母P键表示按照CPU的使用率排序,按字母M键表示按照Memory的使用率排序,按字母N键表示以PID排序,按字母T键表示按照CPU使用时间排序,按字母K键则表示kill进程,按字母R键表示可以renice一个进程等。注意快捷键是区分大小写的。更多可用的方式可以按问号(?)键进入帮助模式。