linux中
ps -ef
和ps aux
都支持用来查看进程快照,下面总结了他们的显示格式区别和各列的含义。(ps -aux
已废弃,不要再用了)
推荐使用ps -ef
ps -ef 标准的格式显示进程(System V风格)
UID | PID | PPID | C | STIME | TTY | TIME | CMD |
---|---|---|---|---|---|---|---|
用户 | 进程id | 父进程id | cpu百分比 | 启动时间 | 所在终端 | 占用cpu时间 | 命令参数 |
root | 1 | 0 | 0 | 06:50 | ? | 00:00:10 | /sbin/init |
root | 40 | 1 | 0 | 12:33 | pts/0 | 00:00:03 | /java/ |
其中各列的内容意思如下
- UID //用户ID、但输出的是用户名
- PID //进程的ID
- PPID //父进程ID
- C //进程占用CPU的百分比
- STIME //进程启动时间
- TTY //该进程在那个终端上运行,若与终端无关,则显示? 若为pts/0等,则表示由网络连接主机进程。
- TIME //进程使用cpu的时间
- CMD //命令的名称和参数
ps -ef展示启动时间
ps -ef、ps aux命令可以展示进程的大概信息,启动时间展示不完整,如果想得知进程的详细启动时间,怎么办呢?
linux: |
ps aux BSD的格式来显示
USER | PID | %CPU | %MEM | VSZ | RSS | TTY | STAT | START | TIME | COMMAND |
---|---|---|---|---|---|---|---|---|---|---|
root | 1 | 0.0 | 1.2 | 19221 | 2989 | ? | S | 12:20 | 00:09 | /sbin/init |
同ps -ef 不同的有列有
- USER //用户名
- %CPU //进程占用的CPU百分比
- %MEM //占用内存的百分比
- VSZ //该进程使用的虚拟內存量(KB)
- RSS //该进程占用的固定內存量(KB)(驻留中页的数量)
- STAT //进程的状态
- START //该进程被触发启动时间
- TIME //该进程实际使用CPU运行的时间
其中STAT状态位常见的状态字符有
- D //无法中断的休眠状态(通常 IO 的进程);
- R //正在运行可中在队列中可过行的;
- S //处于休眠状态;
- T //停止或被追踪;
- W //进入内存交换 (从内核2.6开始无效);
- X //死掉的进程 (基本很少见);
- Z //僵尸进程;
- < //优先级高的进程
- N //优先级较低的进程
- L //有些页被锁进内存;
- s //进程的领导者(在它之下有子进程);
- l //多线程,克隆线程(使用 CLONE_THREAD, 类似 NPTL pthreads);
- //位于后台的进程组;
top
使用示例
$ top -p 4989 |
列说明
PID,USER进程号,用户名。 |
pidstat 进程的信息
使用示例
pidstat [ 选项 ] [ <时间间隔> ] [ <次数> ] |
参数说明
-u:默认的参数,显示各个进程的cpu使用统计 |