Linux系统进程管理

所谓进程是指当我们在启动一个程序之后,系统会产生一个进程并为该进程分配一个PID,即是进程号。linux在启动后会创建第一个进程init,随后所有子进程都将由其父进程创建。根据不同的系统类型系统可分为用户空间进程和内核空间进程。内核空间执行在CPU的环0,由内核进行控制和管理,如果用户空间用到内核空间的指令需向内核空间发起系统调用;用户空间执行在CPU环 3。

进程的类型:

1守护类进程:此类进程一般与终端无关是在系统启动过程中自动运行

2 前台进程:与终端相关,是由用户在终端中手动打开的进程

进程的优先级:linux进程优先级分为0-139,其中0-99是内核优先级由内核进行管理我们无法修改,100-139通过修改nice值进行调整,调整范围在-20至19,越小越优先

进程间通信:进程之间通信(IPC)如在同一台主机可通过信号(signal),共享内存(shm),semerphor(旗语)来完成,不同主机可依靠rpc(远程过程调用),socket来完成

进程的状态:

  1. running运行态:正在运行中的进程

  2. sleeping睡眠态:睡眠态又分为可中断睡眠和不可中断睡眠,可中断睡眠可以立即被CPU唤醒称为运行态,不可中断是由于等待IO操作完成无法继续执行

  3. zombie僵尸态:进程已经死了等待父进程来销毁或者父进程也已经挂了


  4. stopped停止态:不可被调度并运行

Linux进程管理主要命令:pstree,ps,vmstat,top,hop,glances,kill,dstat,bg,fg,job

 1. pstree 显示进程数

   [root@MiWiFi-R3-srv grub]# pstree
    init─┬─NetworkManager─┬─dhclient
     │└─{NetworkManager}
     ├─abrtd
     ├─acpid
     ├─atd
     ├─auditd───{auditd}
     ├─automount───4*[{automount}]
     ├─bonobo-activati───{bonobo-activat}
     ├─certmonger
     ├─console-kit-dae───63*[{console-kit-da}]
     ├─crond
     ├─cupsd
     ├─2*[dbus-daemon───{dbus-daemon}]
     ├─dbus-launch
     ├─devkit-power-da
     ├─gconfd-2
     ├─gdm-binary─┬─gdm-simple-slav─┬─Xorg
     ││ ├─gdm-session-wor
     ││ ├─gnome-session─┬─at-spi-registry
     ││ │   ├─gdm-simple-gree
     ││ │   ├─gnome-power-man
     ││ │   ├─metacity
     ││ │   ├─polkit-gnome-au
     ││ │   └─{gnome-session}
     ││ └─{gdm-simple-sla}
     │└─{gdm-binary}

 


    
2. ps命令 显示相关进程信息

    常用选项:
      a:显示所有与终端相关的进程
      x:显示所有与终端无关的进程
      u:显示与用户相关的进程信息
     -e:显示所有进程
     -f:显示完成格式
     -F:显示更为完整的格式
     -H:显示进程层级结构

 2.1 ps常用组合之aux

  

  

    USERID:表示运行改进程的用户
    PID:进程号
    CPU:使用CPU的百分比
    VSZ:虚拟内存集
    RSS:常驻内存集
    TTY:启动进程的终端
    STAT:
      S:睡眠态
      R:运行态
      z:僵尸态 
      D:不可中断睡眠
      T:停止态
      N:低优先级
      <:高优先级进程
      +:前台进程
      l:多线程
      s:session leader
    START:进程触发时间
    TIME:进程实际使用CPU时间
 

2.2 ps常用组合之-eF

可以看到C字段代表CPU的利用率,PSR字段表示是运行在哪颗CPU上

 

 

2.3 ps常用组合之axo

o表示自己定义需要显示的字段,常用的有:nice,pid,cpu,command,user,pri,stat,tty,vsz,ppid

 

3 top命令

top命令类似于Windows中的资源管理器,可以实时刷新系统中进程相关信息

常用选项:

    d #:指定延迟时间间隔
    u UserName:仅显示指定用户的进程
    s COLUM:以指定字段进行排序
    I :显示选定的进程打开的文件列表
    a:将指定的进程绑定至指定的CPU核心

第一行分别表示系统运行时间,登录多少用户,Cpu平均负载

第二行表示总共的作业数量,多少个运行状态,睡眠状态,停止状态和僵死状态

第三行us代表用户空间占用CPU的百分比,sy代表系统内核空间占用百分比,ni代表跳转nice值用户进程空间内改变过优先级的进程占用CPU百分比,id表示空闲百分比,hi和si分别表示硬中断和软中断占用百分比,st代表此系统所被“偷走”的百分比

第四行和第五行分别表示物理内存和交互分区的使用情况

 4 vmstat 命令

 procs字段:

         r:表示等待运行的进程个数,cpu等待运行的任务队列长度

         b:表示不可中断睡眠的进程个数

memory字段:

  swpd:交换分区使用率

  free:可用空间

       buff:用于buff的内存量

      cache:用于cache的内存量

swap字段:

   si:swap换入的速率(kb/s)

        so:swap换出的速率 (kb/S)

IO字段:

       bi:块设备写入的速率(kb/s)

      bo:块设备读取的速率 (kb/S)

system:

  in:中断速率,当进行IO操作时cpu中断正在执行的任务

  cs:上下文切换,进程别内核调度的频率

cpu:

  us:用户空间占用率

  sy:内核空间占用率

  id:CPU空闲率

  wa:等待IO完成的比率

  st:被虚拟化偷走的比率

 

4 dstat命令

dstat命令根据指定选项可以定时输出相关选项的内容,常用选项如下:  

  -c, --cpu:显示cpu相关信息
  -d ,--disk:显示磁盘相关信息
  -g :显示page相关的统计数据
  -m:Memory的相关统计数据
   -n:interface的相关统计数据
   -p:显示process的相关统计数据
   -r:显示io请求的相关统计数据
  -s:显示swap的相关统计数据
 --top-cpu:显示最暂用CPU的进程
 --top-io:最占用io 的进程
 --top-merm:最占用内存的进程
 --top--lantency:延迟最大的进程

 

posted on 2017-12-06 22:44  cs_1993  阅读(913)  评论(0编辑  收藏  举报