linux进程主要分为:静态进程查看命令(ps)、动态进程查看命令(top)和查看进程树命令(pstree),下面分别介绍这几个进程

一、静态进程查看

ps命令格式:

  1. [root@CentOS5 ~]# ps -aux  <=== 查看系统所有的进程 
  2. [root@CentOS5 ~]#ps -lA   <=== 也是能够查看所有系统的数据 
  3. [root@CentOS5 ~]#ps axjf   <=== 连同部分进程树状态 
  4. -A:与-e意思一样,表示列出所有的进程 
  5. -a:不与terminal有关的进程 
  6. -u:有效用户相关的进程 
  7. x :通常与a这个参数一起使用,可以列出完整信息 
  8. 输出格式规划 
  9. l :较长,较详细的将该PID的信息列出 
  10. j :工作格式 
  11. -f:做一个更为完整的输出 

ps -l:仅查看自己的bash相关进程

  1. [root@CentOS5 ~]# ps -l 
  2. F S   UID   PID  PPID  C PRI  NI ADDR SZ WCHAN  TTY          TIME CMD 
  3. 4 S     0  9949  9947  0  76   0 -  1132 wait   pts/2    00:00:00 bash 
  4. 4 R     0 10203  9949  0  77   0 -  1052 -      pts/2    00:00:00 ps 

F:进程标志

 4:表示权限为root

 1:表示只能复制,不能执行

S:表示进程的状态(STAT

 Rrunning表示正在运行状态

 Ssleep表示沉睡状态,但是可以唤醒

 D:表示沉睡状态,不能唤醒,通常这个进程可能在等待I/O的情况

 Tstop表示停在状态,例如暂停的后台工作或出错进程

 Z:僵尸进程,进程已经终止但不能提出内存外

UID/PID/PPID:表示用户的UID/进程的PID号码/此进程的父进程PID号码

C:表示CPU的使用率,单位是百分比

PRI/NI:表示此进程被CPU执行的优先级,数字越小,优先级越高

ADDR:支持该进程在内存的那个部分,若该进程正在运行这表示为“-

SZ:表示该进程占用了多少内存

WCHAN:表示该进程是否运行,若在运行这表示为“-

TTY:表示登陆终端,若是远程登陆表示为pts/h

TIME:表示该进程使用CPU的时间

CMDcommand,表示那个命令启动的该进程

  1. [root@CentOS5 ~]# ps aux 
  2. USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND 
  3. root         1  0.0  0.0   2064   620 ?        Ss   07:29   0:00 init [3]                                    
  4. root         2  0.0  0.0      0     0 ?        S<   07:29   0:00 [migration/0] 
  5. root         3  0.0  0.0      0     0 ?        SN   07:29   0:00 [ksoftirqd/0] 
  6. …(省略部分)… 
  7. root      3022  0.0  0.0   1656   432 tty2     Ss+  07:30   0:00 /sbin/mingetty tty2 
  8. root      3023  0.0  0.0   1656   436 tty3     Ss+  07:30   0:00 /sbin/mingetty tty3 
  9. root      3024  0.0  0.0   1656   436 tty4     Ss+  07:30   0:00 /sbin/mingetty tty4 
  10. root      3025  0.0  0.0   1656   436 tty5     Ss+  07:30   0:00 /sbin/mingetty tty5 
  11. root      3026  0.0  0.0   1656   432 tty6     Ss+  07:30   0:00 /sbin/mingetty tty6 

USER:表示该进程所属用户

PID:该进程的PID

%CPU:表示该进程的CPU占用率

%MEM:表示该进程的物理内存占用率

VSZ:表示该进程占用了多少虚拟内存量

RSS:表示该进程占用了多少固定内存量

TTY:表示登陆端口

STAT:和上面介绍的进程状态一样(R/S/D/T/Z进程)

START:该进程触发启动的时间

TIME:表示该进程占用CPU的时间

COMMAND:表示触动该进程的命令 

僵尸进程

通常,造成僵尸进程的原因是该进程应该已经执行完毕,或是因故应该要终止了,但是该进程的父进程却无法完整将该进程结束掉,而造成那个进程一直在内存当中。如果你发现某个进程的CMD后面接上<defunct>时,就代表该进程是僵尸进程,例如:

1  2598  2598  2598 ?           -1 Ss       0   0:00 /usr/sbin/hcid<defunct>

当系统不稳定的时候就容易造成所谓的僵尸进程,可能是因为程序写的不好,或者用户操作不当所造成的。如果系统出现很多僵尸进程,记得要找出父进程,然后好好跟踪,好好优化主机环境。如果实在不行就只有reboot

 

二、动态进程:top

top命令格式

  1. [root@CentOS5 ~]# top [-d | -bnp] 
  2. -d:表示界面刷新时间,单位秒,默认是5秒 
  3. -b:以批次的方式进行top,还有更多的参数可以使用 
  4.     通常会搭配数据重定向来讲批处理的结果输出成为文件 
  5. -n:与-b搭配,意思是需要进行几次top的输出结果 
  6. -p:查看直接进程,后面接进程号 
  7.   ?:显示在top当中可以输入的按键命令 
  8.   P:以cpu使用率来排名 
  9.   M:以内存的使用率来排名 
  10.   N:以PID来排名 
  11.   T:以进程使用CPU时间累加排名 
  12.   k:给予某个PID一个信号 
  13.   r:给予某个PID重新制定一个nice值 
  14.   q:退出离开 

  1. [root@CentOS5 ~]# top 
  2. top - 20:09:53 up 12:40,  2 users,  load average: 0.00, 0.00, 0.00 
  3. Tasks:  79 total,   1 running,  78 sleeping,   0 stopped,   0 zombie 
  4. Cpu(s):  0.0%us,  0.0%sy,  0.0%ni,100.0%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st 
  5. Mem:    823916k total,   677020k used,   146896k free,    79228k buffers 
  6. Swap:  1671160k total,        0k used,  1671160k free,   462724k cached 
  7.  
  8.   PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND                                                                                                               
  9. 10687 root      35  19  2196  992  800 R  0.3  0.1   0:00.03 top                                                                                                                   
  10.     1 root      15   0  2064  620  532 S  0.0  0.1   0:00.74 init                                                                                                                  
  11.     2 root      RT  -5     0    0    0 S  0.0  0.0   0:00.00 migration/0                                                                                                           
  12.     3 root      34  19     0    0    0 S  0.0  0.0   0:00.00 ksoftirqd/0                                                                                                           
  13. 4 root      RT  -5     0    0    0 S  0.0  0.0   0:00.00 watchdog/0 

这里共有六行

第一行:表示现在时间,系统开机到现在的时间,多少登陆用户。负载均衡,在1515分钟系统平均运行几个进程的意思,越小代表系统越闲置,若高于1得注意你的系统压力是否太过繁复了

第二行:表示系统共运行了多少进程,他们分别的运行状态,注意后面的zombie一般为0如果为其他数,就要注意了,看看到是那个进程是僵尸进程

第三行:表示当下CPU整体负载,需要特别注意的是%wa,这个选项代表的是I/Owait,通常你的系统会变慢都是I/O产生的问题比较大,如果你是多核设备可以按“1”切换查看不同的CPU负载情况

第四行与第五行:表示物理内存与虚拟内存使用的情况,swap的使用要越低越好,如果swap使用率较高表示物理内存不足

第六行:

PID:是进程ID

USER:该进程所属用户

PRpriority的缩写,进程的优先级,值越小优先级越高

NInice的缩写,与priority有关,值越小优先级越高

%CPUCPU的使用率

%MEM:内存使用率

TIME+CPU使用时间的累加

值得注意的是:在top中输入h或者?,可以显示帮助

 

三、查看进程树命令:pstree

pstree命令格式

  1. [root@CentOS5 ~]# pstree [-A|U] [-up] 
  2. -A:各进程间连接用ASCII字符连接 
  3. -U:该进程之间连接用utf8字符连接 
  4. -p:同时显示PID 
  5. -u:同时列出每个进程的所属账号名称 

  1. [root@CentOS5 ~]# pstree -Aup 
  2. init(1)-+-acpid(2738) 
  3.         |-atd(2912) 
  4.         |-auditd(2399)-+-audispd(2401)---{audispd}(2409) 
  5.         |              `-{auditd}(2400) 
  6.         |-automount(2714)-+-{automount}(2715) 
  7.         |                 |-{automount}(2716) 
  8.         |                 |-{automount}(2719) 
  9.         |                 `-{automount}(2722) 
  10.         |-avahi-daemon(2942,avahi)---avahi-daemon(2943) 
  11.         |-crond(2856) 
  12.         |-cupsd(2792) 
  13.         |-dbus-daemon(2582,dbus)---{dbus-daemon}(2583) 
  14.         |-dhclient(2342) 
  15.         |-events/0(5) 
  16.         |-gam_server(3016) 
  17. ...(部分省略)...