进程的概念

十五、进程管理——进程查看ps、top_第1张图片

进程查看

查看命令
 ps
 pstree
 top
结论:
 进程也是树形结构
 进程和权限有着密不可分的关系

ps命令

(1)单独执行ps,查看的是当前终端能查看到的进程

user1@SC02ZRC4KMD6N ~ % ps
  PID TTY           TIME CMD
  996 ttys000    0:00.06 -zsh

PID是进程id,TTY执行程序的终端,TIME进程运行的时间

(2)查看不同终端所有的进程

user1@SC02ZRC4KMD6N ~ % ps -e |more
  PID TTY           TIME CMD
    1 ??         0:09.44 /sbin/launchd
  106 ??         0:01.02 /usr/sbin/syslogd

(3)ps-ef命令可以查看更多信息

user1@SC02ZRC4KMD6N ~ % ps -ef | more
  UID   PID  PPID   C STIME   TTY           TIME CMD
    0     1     0   0 11:15上午 ??         0:09.58 /sbin/launchd
    0   106     1   0 11:15上午 ??         0:01.03 /usr/sbin/syslogd

UID进程是由哪个用户启动的,PPID是指父进程
(4)ps -eLf,可以查看某个线程
(5)pstree,将进程的父子关系用树状结构

top命令

查看进程的运行状态

user1@SC02ZRC4KMD6N ~ % top
top - 16:59:51 up 2 days, 22:46,  0 users,  load average: 5.21, 7.10, 9.30
Tasks:   7 total,   1 running,   4 sleeping,   2 stopped,   0 zombie
%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
KiB Mem :  1048576 total,   807760 free,   239040 used,     1776 buff/cache
KiB Swap:        0 total,        0 free,        0 used.   809536 avail Mem 

   PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND                               
     1 root      20   0  493776  47328  11896 S   0.0  4.5   0:37.42 smb                                   
    20 root      20   0    4504    708    640 S   0.0  0.1   0:00.41 sh                                    
    21 root      20   0 1194924 226696  32508 S   0.0 21.6   3:01.08 main                                  
  8520 root      20   0   19960   3712   3216 S   0.0  0.4   0:00.00 bash                                  
  8528 root      20   0   38356   3344   2896 T   0.0  0.3   0:00.08 top                                   
  8529 root      20   0   38356   3432   2984 T   0.0  0.3   0:00.00 top                                   
  8531 root      20   0   38360   3492   3044 R   0.0  0.3   0:00.00 top       

命令详解如下:
(1)第一行

top - 16:59:51 up 2 days, 22:46,  0 users,  load average: 5.21, 7.10, 9.30

2 days:系统以及多久没有关机了
0 user:系统当前总共的用户数
load average: 8.13, 9.76, 10.72:系统的平均负载,衡量系统的繁忙程度。三个指标分别是1分钟、5分钟、15分钟系统的平均负载
(2)第二行

Tasks:   7 total,   1 running,   4 sleeping,   2 stopped,   0 zombie

7 total:运行的进程数
1 running:1个进程在运行中
(3)第三行

%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

xx us:多少百分比参与计算
xx sy:进程之间状态的交互
xx id:空闲
xx wa:IO wait
注意:如果有多个CPU,%Cpu(s)会取一个平均值。如果想查看每个CPU的使用情况,可以按1,效果如下:

%Cpu0  :  0.0 us,  0.0 sy,  0.0 ni,100.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
%Cpu1  :  0.0 us,  0.0 sy,  0.0 ni,100.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st

(4)第四行

KiB Mem :  1048576 total,   807760 free,   239040 used,     1776 buff/cache

1048576 total:一共有多少内存
807760 free:多少内存空闲
239040 used:多少内存已使用
1776 buff/cache:多少内存用于读写、缓存
(5)第五行

KiB Swap:        0 total,        0 free,        0 used.   809536 avail Mem 

交换分区
(6)内存实际信息,可以看到每个进程占用的CPU和内存。默认是3秒更新一次,如果想更改更新时间,按‘s’来设置

   PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND                               
     1 root      20   0  493776  47328  11896 S   0.0  4.5   0:37.42 smb                                   
    20 root      20   0    4504    708    640 S   0.0  0.1   0:00.41 sh                                    
    21 root      20   0 1194924 226696  32508 S   0.0 21.6   3:01.08 main                                  
  8520 root      20   0   19960   3712   3216 S   0.0  0.4   0:00.00 bash                                  
  8528 root      20   0   38356   3344   2896 T   0.0  0.3   0:00.08 top                                   
  8529 root      20   0   38356   3432   2984 T   0.0  0.3   0:00.00 top                                   
  8531 root      20   0   38360   3492   3044 R   0.0  0.3   0:00.00 top