ps top等命令详解

1,ps命令

ps命令是一个很强大的命令了,显示查询瞬间进程的状态,参数众多,仅列几个常用的和具体参数的含义。

1)基本使用

ps -aux
#显示详细的进程信息,进程所有者不限于当前用户

查询到的进程有关参数的含义:

USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
USER: 进程所有者
PID: 进程ID
%CPU: 占用的 CPU 使用率
%MEM: 占用的内存使用率
VSZ: 占用的虚拟内存大小
RSS: 占用的内存大小
TTY: 终端的次要装置号码 (minor device number of tty)
STAT: 进程状态:
 D 无法中断的休眠状态(通常 IO 的进程); 
 R 正在运行,在可中断队列中; 
 S 处于休眠状态,静止状态; 
 T 停止或被追踪,暂停执行; 
 W 进入内存交换(从内核2.6开始无效); 
 X 死掉的进程; 
 Z 僵尸进程不存在但暂时无法消除;
 W: 没有足够的记忆体分页可分配
 WCHAN 正在等待的进程资源;
 <: 高优先级进程
 N: 低优先序进程
 L: 有记忆体分页分配并锁在记忆体内 (即时系统或捱A I/O),即,有些页被锁进内存
 s 进程的领导者(在它之下有子进程); 
 l 多进程的(使用 CLONE_THREAD, 类似 NPTL pthreads); 
 + 位于后台的进程组;
START: 启动进程的时间; 
TIME: 进程消耗CPU的时间;
COMMAND:命令的名称和参数;

2)排序使用

ps -aux --sort=-vsz
#ps命令自带排序功能,本命令指的是按照vsz的大小降序排列

可排序的项目有:

c cmd   可执行地简单名称 
C cmdline   完整命令行 
f flags   长模式标志 
g pgrp   进程地组ID 
G tpgid   控制tty进程组ID 
j cutime   累计用户时间 
J cstime   累计系统时间 
k utime   用户时间 
K stime   系统时间 
m min_flt   次要页错误地数量 
M maj_flt   重点页错误地数量 
n cmin_flt 累计次要页错误 
N cmaj_flt 累计重点页错误 
o session   对话ID 
p pid   进程ID 
P ppid   父进程ID 
r rss   驻留大小 
R resident 驻留页 
s size   内存大小(千字节) 
S share   共享页地数量 
t tty   tty次要设备号 
T start_time 进程启动地时间 
U uid   UID
u user   用户名
v vsize   总地虚拟内存数量(字节) 
y priority 内核调度优先级

3)用标准格式显示进程的详细信息(aux命令用的不是标准格式,是BSD格式)

ps -ef

显示参数含义:

UID    PID  PPID  C STIME TTY      TIME CMD
UID    //用户ID、但输出的是用户名 
PID    //进程的ID 
PPID    //父进程ID 
C      //进程占用CPU的百分比 
STIME  //进程启动到现在的时间 
TTY    //该进程在那个终端上运行,若与终端无关,则显示? 若为pts/0等,则表示由网络连接主机进程。 
CMD    //命令的名称和参数

4)查看父进程的子进程

pstree -p 1234
#1234指的是pid,能拿到子线程的线程数
top -H -p 1234
#-H按照线程查看 -p指定父进程的pid
cat /proc/1234/status
#查看某个进程的具体信息,数据比较繁杂

5)根据ps打印出来的系统内容排序查看

查看cpu占用率前5的几个进程

ps -aux | sort -k3,3nr | head -5

#sort中-t是指定的分隔符,默认空格,-k是指定分隔符后的字段顺序,-n按照字符串的数值顺序比较,-r reverse , -u uniq

查看内存前5的几个进程

ps -aux | sort -k4,4nr | head -5

2,top命令

  top 命令是 Linux 下常用的系统资源占用查看及性能分析工具,能够实时显示系统中各个进程的资源(比如cpu、内存的使用)占用状况,top命令的执行结果是一个动态显示过程。

用户可以输入的参数如下:

d 指定每两次屏幕信息刷新之间的时间间隔。当然用户可以使用s交互命令来改变之。
p 通过指定监控进程ID来仅仅监控某个进程的状态。
q 该选项将使top没有任何延迟的进行刷新。如果调用程序有超级用户权限,那么top将以尽可能高的优先级运行。
S 指定累计模式。
s 使top命令在安全模式中运行。这将去除交互命令所带来的潜在危险。
i 使top不显示任何闲置或者僵死进程。
c 显示整个命令行而不只是显示命令名。
-n :与 -b 搭配,意义是,需要进行几次 top 的输出结果。
-p :指定某些个 PID 来进行观察监测而已。

得到的参数含义:

列名    含义
PID    进程id
PPID    父进程id
RUSER    Realusername
UID    进程所有者的用户id
USER    进程所有者的用户名
GROUP    进程所有者的组名
TTY    启动进程的终端名。不是从终端启动的进程则显示为?
PR       优先级
NInice     值。负值表示高优先级,正值表示低优先级
P        最后使用的CPU,仅在多CPU环境下有意义
%CPU    上次更新到现在的CPU时间占用百分比
TIME    进程使用的CPU时间总计,单位秒
TIME+    进程使用的CPU时间总计,单位1/100秒
%MEM    进程使用的物理内存百分比
VIRT    进程使用的虚拟内存总量,单位kb。VIRT=SWAP+RES
SWAP    进程使用的虚拟内存中,被换出的大小,单位kb。
RES    进程使用的、未被换出的物理内存大小,单位kb。RES=CODE+DATA
CODE    可执行代码占用的物理内存大小,单位kb
DATA    可执行代码以外的部分(数据段+栈)占用的物理内存大小,单位kb
SHR    共享内存大小,单位kb
nFLT    页面错误次数
nDRT    最后一次写入到现在,被修改过的页面数。
S    进程状态。
D=    不可中断的睡眠状态
R=    运行
S=    睡眠
T=    跟踪/停止
Z=    僵尸进程
COMMAND    命令名/命令行
WCHAN    若该进程在睡眠,则显示睡眠中的系统函数名
原文地址:https://www.cnblogs.com/0-lingdu/p/14334966.html