Linux中ps与top命令
============================================================================
这两个命令都是查看系统进程信息的命令,但是用处有点儿不同
1.ps命令--提供系统过去信息的一次性快照
也就是说ps命令能够查看刚刚系统的进程信息 命令:ps aux或者ps lax
[root@Linux ~]# ps aux USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND root 1 0.1 0.1 2032 644 ? Ss 21:55 0:01 init [3] root 2 0.0 0.0 0 0 ? S 21:55 0:00 [migration/0] root 3 0.0 0.0 0 0 ? SN 21:55 0:00 [ksoftirqd/0]
......
解释如下:
VSZ--进程的虚拟大小
RSS--驻留集的大小,可以理解为内存中页的数量
TTY--控制终端的ID
STAT--也就是当前进程的状态,其中S-睡眠,s-表示该进程是会话的先导进程,N-表示进程拥有比普通优先级更低的优先级,R-正在运行,D-短期等待,Z-僵死进程,T-被跟踪或者被停止等等
START--这个很简单,就是该进程启动的时间
TIME--进程已经消耗的CPU时间,注意是消耗CPU的时间
COMMOND--命令的名称和参数
而]#ps lax 可以看到父进程,谦让值以及该进程正在等待的资源等待
2.top命令- top命令反应的是系统进程动态信息,默认10s更新一次
[root@Linux ~]#top
top - 22:30:58 up 35 min, 1 user, load average: 0.12, 0.07, 0.08 Tasks: 72 total, 1 running, 71 sleeping, 0 stopped, 0 zombie Cpu(s): 0.2%us, 0.2%sy, 0.0%ni, 99.7%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st Mem: 373320k total, 88600k used, 284720k free, 9956k buffers Swap: 514072k total, 0k used, 514072k free, 45092k cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 3217 root 15 0 2160 976 788 R 1 0.3 0:00.07 top 1 root 15 0 2032 644 552 S 0 0.2 0:01.55 init 2 root RT 0 0 0 0 S 0 0.0 0:00.02 migration/0 3 root 34 19 0 0 0 S 0 0.0 0:00.00 ksoftirqd/0 4 root RT 0 0 0 0 S 0 0.0 0:00.00 watchdog/0 5 root RT 0 0 0 0 S 0 0.0 0:00.02 migration/1 6 root 39 19 0 0 0 S 0 0.0 0:00.00 ksoftirqd/1 7 root RT 0 0 0 0 S 0 0.0 0:00.00 watchdog/1
解释如下
PID:进程ID,进程的唯一标识符
USER:进程所有者的实际用户名。
PR:进程的调度优先级。这个字段的一些值是'rt'。这意味这这些进程运行在实时态。
NI:进程的nice值(优先级)。越小的值意味着越高的优先级。负值表示高优先级,正值表示低优先级
VIRT:进程使用的虚拟内存。进程使用的虚拟内存总量,单位kb。VIRT=SWAP+RES
RES:驻留内存大小。驻留内存是任务使用的非交换物理内存大小。进程使用的、未被换出的物理内存大小,单位kb。RES=CODE+DATA
SHR:SHR是进程使用的共享内存。共享内存大小,单位kb
S:这个是进程的状态。它有以下不同的值:
- D - 不可中断的睡眠态。
- R – 运行态
- S – 睡眠态
- T – 被跟踪或已停止
- Z – 僵尸态
%CPU:自从上一次更新时到现在任务所使用的CPU时间百分比。
%MEM:进程使用的可用物理内存百分比。
TIME+:任务启动后到现在所使用的全部CPU时间,精确到百分之一秒。
COMMAND:运行进程所使用的命令。进程名称(命令名/命令行)
以上就是top命令的部分输出,可以看到该命令显示了较为详细的信息
顶部始终显示的是系统当前最活跃的进程,此时还可以接受用户的键盘输入向进程发送信号等待
TOP 功能键:
s – 改变画面更新频率 l – 关闭或开启第一部分第一行 top 信息的表示 t – 关闭或开启第一部分第二行 Tasks 和第三行 Cpus 信息的表示 m – 关闭或开启第一部分第四行 Mem 和 第五行 Swap 信息的表示 N – 以 PID 的大小的顺序排列表示进程列表 P – 以 CPU 占用率大小的顺序排列进程列表 M – 以内存占用率大小的顺序排列进程列表 h – 显示帮助 n – 设置在进程列表所显示进程的数量 q – 退出 top s – 改变画面更新周期
3.ps和top都是从/proc目录下读取进程的状态信息,内核把当前系统进程的各种有用信息都放在这个伪目录下。
============================================================================
ps -ef 与 ps aux
-
第一点
-ef
是System V展示风格,而aux
是BSD风格。 字段含义: USER:用户名称 PID:进程号 %CPU:进程占用CPU的百分比 %MEM:进程占用物理内存的百分比 VSZ:进程占用的虚拟内存大小(单位:KB) RSS:进程占用的物理内存大小(单位:KB) TT:终端名称(缩写),若为?,则代表此进程与终端无关,因为它们是由系统启动的 STAT:进程状态,其中S-睡眠,s-表示该进程是会话的先导进程,N-表示进程拥有比普通优先级更低的优先级,R-正在运行,D-短期等待,Z-僵死进程,T-被跟踪或者被停止等等 STARTED:进程的启动时间 TIME:CPU时间,即进程使用CPU的总时间 COMMAND:启动进程所用的命令和参数,如果过长会被截断显示 - 字段含义: UID:用户ID PID:进程ID PPID:父进程ID C:CPU用于计算执行优先级的因子。数值越大,表明进程是CPU密集型运算,执行优先级会降低;数值越小,表明进程是I/O密集型运算,执行优先级会提高 STIME:进程启动的时间 TTY:完整的终端名称 TIME:CPU时间 CMD:完整的启动进程所用的命令和参数
-
第二点
COMMADN列如果过长,aux
会截断显示,而ef
不会
综上:
如果想查看进程的CPU占用率和内存占用率,可以使用aux
如果想查看进程的父进程ID和完整的COMMAND命令,可以使用ef