ps(Process Status) 查看当前进程和线程的信息

2015-08-16 0 By admin

PS(Process Status ):report a snapshot of the current processes.
ps displays information about a selection of the active processes.

可以调整输出格式,设置输出的列表fields和排序方式。
常用命令选项参数:
ps axjf #按照进程树的排列方式展示所有进程。
ps -eLf 展示全部线程

结合命令:
pstree -p 进程号
top -Hp 进程号

一、PS 命令使用示例

1.1、展示所有进程(standard syntax)

ps -e
ps -ef
ps -eF
ps -ely

1.2、展示所有进程(BSD syntax)

ps ax
ps axu

1.3、展示进程树信息

ps -ejH
ps axjf

1.4、展示线程的信息

ps -eLf
ps axms

1.5、展示安全信息

ps -eo euser,ruser,suser,fuser,f,comm,label
ps axZ
ps -eM

1.6、展示root 用户(real & effective ID真实运行|影响的)的进程

ps -U root -u root u

1.7、展示进行信息,自定义展示字段

ps -eo pid,tid,class,rtprio,ni,pri,psr,pcpu,stat,wchan:14,comm
ps axo stat,euid,ruid,tty,tpgid,sess,pgrp,ppid,pid,pcpu,comm
ps -Ao pid,tt,user,fname,tmout,f,wchan

1.8、展示 syslogd 的进程信息

ps -C syslogd -o pid=

1.9、Print only the name of PID 42

ps -q 42 -o comm=

二、ps 指令选择参数介绍

2.1、简单进程选择 SIMPLE PROCESS SELECTION

a list all processes with a terminal (tty), or to list all processes when used together with the x option.
-a Select all processes except both session leaders and processes not associated with a terminal.
-d Select all processes except session leaders.
-e Select all processes. Identical to -A.
T Select all processes associated with this terminal. Identical to the t option without any argument.
r Restrict the selection to only running processes.

2.2、使用列表选择展示的进程 PROCESS SELECTION BY LIST

These options accept a single argument in the form of a blank-separated or comma-separated list. They can be used multiple times. For example: ps -p “1 2” -p 3,4

-123 Identical to –pid 123.
123 Identical to –pid 123.
-C cmdlist Select by command name.
-G grplist Select by real group ID (RGID) or name.
-g grplist Select by session OR by effective group name.
p pidlist Select by process ID. Identical to -p and –pid.
–ppid pidlist Select by parent process ID.
q pidlist Select by process ID (quick mode). Identical to -q and –quick-pid.
-s sesslist Select by session ID. This selects the processes with a session ID specified in sesslist.
t ttylist Select by tty.
U userlist Select by effective user ID (EUID) or name.
-U userlist Select by real user ID (RUID) or name.

2.3、展示线程信息 THREAD DISPLAY

H Show threads as if they were processes.
-L Show threads, possibly with LWP and NLWP columns.
m Show threads after processes.
-m Show threads after processes.
-T Show threads, possibly with SPID column.

三、输出内容说明

3.1、部分展示信息字段介绍

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 进程状态:
START 启动进程的时间;
TIME 进程消耗CPU的时间;
COMMAND 命令的名称和参数;

3.2、进程的各种状态含义说明

D 无法中断的休眠状态(通常 IO 的进程);
R 正在运行,在可中断队列中;
S 处于休眠状态,静止状态;
T 停止或被追踪,暂停执行;
W 进入内存交换(从内核2.6开始无效);
X 死掉的进程;
Z 僵尸进程不存在但暂时无法消除;
W: 没有足够的记忆体分页可分配
WCHAN 正在等待的进程资源;
<: 高优先级进程
N: 低优先序进程
L: 有记忆体分页分配并锁在记忆体内 (即时系统或捱A I/O),即,有些页被锁进内存
s 进程的领导者(在它之下有子进程);
l 多进程的(使用 CLONE_THREAD, 类似 NPTL pthreads);
+ 位于后台的进程组;

四、补充说明

4.1、SIZE: 映射的内存空间

进程使用的地址空间, 如果进程映射了100M的内存, 进程的地址空间将报告为100M内存. 事实上, 这个大小不是一个程序实际使用的内存数.

4.2、RSS:驻留内存空间

RSS: “Resident Set Size”, 实际驻留”在内存中”的内存数. 不包括已经交换出去的代码.
举一个例子: 如果你有一个程序使用了100K内存, 操作系统交换出40K内存, 那么RSS为60K. RSS还包括了与其它进程共享的内存区域. 这些区域通常用于libc库等.

4.3、SHARE: 共享内存空间

RSS中与其它进程共享的内存部分大小.

4.4、VMSIZE: 总地址空间

一个进程占用的总的地址空间大小. 它包括了没有映射到内存中的页面。

4.5、sz(Private RSS): 虚拟内存空间

映射到内存中的页面, 这些页面仅由进程单独使用. 这也是我们最关心地方: 进程实际占用的内存数。