进程管理:

 二进制的格式为ELF,是CPU指令集中的指令

 程序=指令+数据,

 进程是程序的副本,可以有多个

 内核是一个资源调度监视器

 Linux是抢占式多任务

 内存被事先划分成多个相同大小的页框

 LIU:最近最少使用

 mmap 共享内存

 通过fork()进程生成

 内存泄漏





 init是所有进程的父进程

 task_struct任务结构:是一种数据结构

 双向循环链表

 线程是一个进程内的多个执行流

WLP:轻量级进程

模式转换:





时钟驱动:

    进程优先级:





    是进程调度的核心资源





    公平:

        结果公平:

起点公平:

算法:完成工作的调度方式

BIG O 

    O(1)

    O(logn)

    O(n)

    O(N^2)

    O(2^N)

一共140个队列

0-99 为实时优先级





进程的分类:

  CPU-Bound:CPU密集型

  I/O-Bound:I/O密集型





进程的分类:

     批处理进程

     交互式进程

     实时进程





进程调度器:

    进程优先级:0-139

        实时优先级: 1-99,数字越大,优先级越高

静态优先级:100-139,nice值调整,数字越大,优先级越低

                    nice:-20,19

   priority:100,139

  动态优先级:由内核维护,动态调整





进程状态:

      运行态:running R

         就绪态:

      睡眠态:sleeping

          可中断睡眠 inruptable

 不可中断睡眠 uninruptable

      停止态:不会被调度 stopped

      僵死态:zombie





进程管理命令:

  ps pstree pidof top htop pmap vmstat dstat





ps:显示进程状态的命令

   进程:

       与终端相关的进程:a

       与终端无关的进程:x

            D:不可中断的睡眠

            R:运行或就绪

            S:可中断的睡眠

            T:停止

            Z:僵死

              

            s:session leader 有子进程

            +:前台进程

            l:多线程进程

            N:低优先级进程

            <: 高优先级进程

            u:以用户为中心显示进程相关信息

            VSZ:虚拟内存集,Virutal menmory Size

            RSS:常驻内存集,

            STIME:启动时间

            TIME:累计占用的内存时间 []表示内核线程

    常用组合一:ps aux

    其他常用选项:

         -e:显示所有进程

         -f:以进程的长格式显示

     常用组合之二:ps -ef

     常用组合之三:ps -eFH

          -F:显示额外信息

     -H:显示进程的层次信息

pstree:显示进程树





      自定义要显示的信息:-o

              ps  auo pid command

               rtprio:实时优先级

      ni:nice值

      pri:优先级

      psr:运行的cpu

pgroup:

   -U Username:仅显示指定用户的进程的进程的PID

   -G Groupname:仅显示指定用户组的进程的进程的PID





pidof:显示指定命令所启动的pid

    pidof command

 

top:

  M:按内存占用百分比大小排序

  P:按cpu占用百分比大小排序,默认

  T:按累计占有时长进行排序

  1:分开显示

  l: 是否显示负载信息

  t:是否显示cpu和进程的统计信息

  m:是否显示内存和交互分区的信息

  q:退出

  k:kill,杀掉进程

  s:改变top刷新频率

top - 11:49:38 up  3:18,  1 user,  load average: 0.00, 0.00, 0.00

Tasks: 120 total,   1 running, 119 sleeping,   0 stopped,   0 zombie

Cpu(s):  0.0%us,  0.3%sy,  0.0%ni, 99.3%id,  0.0%wa,  0.0%hi,  0.3%si,  0.0%st

Mem:    502168k total,   420160k used,    82008k free,    57496k buffers

Swap:  2097144k total,        0k used,  2097144k free,   254164k cached





  常用选项:

     -d #:指定刷新时间间隔

     -b:以批次显示top的刷新

     -n # 指定指定的次数

htop

    u:选择指定用户的进程

    l: 显示进程所打开的文件列表

    s:显示进程执行的系统调用

    a:显示进程的进程的cpu上

    #:快速将光标定位之指定的PID进程上

    quit





vmstst

procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu-----

 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st

 0  0      0  57460  54564 285520    0    0    30     5   21   14  0  0 99  1 

  procs

    r:运行或等待cpu时间片的进程的个数

    b:被阻塞(通常为等待I/O完成)的进程的长度

  memory

    swpd:从物理内存交互至swap中的数据量

    free:未使用的内存大小

    buffer:buffer空间大小,通常与缓存写操作相关

    cache:cache空间大小,通常与缓存读操作相关

  swap

    si:swap in 数据进入swap中的数据量,通常是速率。kb/s

    so:swap out 数据离开swap中的数据量,通常是速率。kb/s

  io:

    bi:block in:从块设备读入的数据量,通常是速率,kb/s

    bo:block out:保存至块设备中的数据量,通常是速率,kb/s

   

    in:中断发生频率。每秒的中断数

    cs:context switch 上下文切换,进程切换,通常是速率,kb/s

  cpu:

    us:用户空间的使用率

    sy:内核空间的使用率

    id:空闲

    wa:等待的

    st:被偷走的

    

   使用格式

   vmstat [delay [counts]]

     -s:显示内存统计数据





dstat,nice,作业管理





进程:nice

      用来手动调整进程优先级





      默认nice为0.其默认优先级为120





      nice:普通用户只能调大此值





      对于尚未启动的程序

         nice -n # COMMAND 表示进程以#进程启动





       对于运行中的进程:

          renice # PID 调整PID的nice值





        查看 ps axo ni command pid





    kill命令:可以实现向其他进程发送信息

     

       kill -l :可以查看向进程发送的所有信息

       man 7 sigual

       

       kill -SIGNAL PID

             -SIGNAL:

        数字代号:比如1,9等

信号名称:如SIGHUP等

简写的信号名称:如HUP等





        1) SIGHUP:让程序重读配置文件,而不用重启程序

        2) SIGINT:中断信号。Ctrl+c即发送次信号  

        9) SIGKILL:杀死进程

        15) SIGTERM:终止进程,比较优雅(默认)

        

killall -SIGNAL 进程名













Linux的作业控制

    前台作业:占据着一个终端

    后台作业:作业执行时不占据终端,作业启动后就释放终端





    非守护进程类的程序,启动以后都在前台工作

          如果已经启动:前台-->后台。ctrl+z把前台作业送往后台,作业被”停止“

 如果尚未启动:COMMAND &





 退出当前会话,作业也会终止,因为作业与当前终端相关,如果把作业送往后台后,不期望作业随终止结束而停止

            nohup COMMAND &

           

  如何让送往后台的作业继续执行:

   fg [[%]作业号码]:将作业调回前台继续进行

   bg [[%]作业号码]:让作业在后台继续进行

       默认的为最后一个进入后台的任务

              kill %作业号码:终止作业   

  查看作业号:

      jobs

回顾终端:

    /dev/tty#

    /dev/ttyS#

    /dev/pts/#

    /dev/console





pmap pid





00007fb60640d000      4K    rw---  /sbin/init

起始地址              空间  权限    





命令总结:

  ps pstree pidof pgrep top htop vmstat dstat nice renice kill jobs killall fg bg nohup pmap





常用命令举例:

    1.查找名为httpd的程序 ps aux | grep http

    2.杀死一个进程:

        方法①

        首先查出该进程的pid: # pidof httpd

        停止该进程:          # kill -15 pid





        方法②

        强行中断进程(不推荐)

        kill -9 pid

centos中进程管理工具的更多相关文章

  1. linux(centos)下安装supervisor进程管理工具

    在接触supervisor进程管理工具之前,使用springboot打包部署到linux服务器的流程是这样子的,如下图所示: 上图展示的就是最一般的流程,如果项目是小项目或者demo可以这样子去部署, ...

  2. Linux下取代top的进程管理工具 htop

    一.htop 简介 This is htop, an interactive process viewer for Linux. It is a text-mode application (for ...

  3. Python 进程管理工具 Supervisor 使用教程

    Supervisor 是基于 Python 的进程管理工具,只能运行在 Unix-Like 的系统上,也就是无法运行在 Windows 上.Supervisor 官方版目前只能运行在 Python 2 ...

  4. Linux进程管理工具 Supervisord 的安装 及 入门教程

    Supervisor是一个进程管理工具,官方的说法: 用途就是有一个进程需要每时每刻不断的跑,但是这个进程又有可能由于各种原因有可能中断.当进程中断的时候我希望能自动重新启动它,此时,我就需要使用到了 ...

  5. Supervisor安装与配置(Linux/Unix进程管理工具)

    原文链接:http://blog.csdn.net/xyang81/article/details/51555473 Supervisor(http://supervisord.org/)是用Pyth ...

  6. 进程管理工具supervisor

    1. 简介 supervisor有两个组件:supervisord和supervisorctl,组成了client/server结构. supervisord负责读入配置文件,然后supervisor ...

  7. Linux进程管理工具Supervisor的安装配置

    目录 Linux进程管理工具Supervisor的安装配置 简介 安装Python包管理工具 安装Supervisor 配置 配置文件参数说明 配置进程管理 启动supervisor 控制进程 交互终 ...

  8. systemd进程管理工具实战教程

    关注「开源Linux」,选择"设为星标" 回复「学习」,有我为您特别筛选的学习资料~ 1. systemd介绍 systemd是目前Linux系统上主要的系统守护进程管理工具,由于 ...

  9. supervisor python开发的进程管理工具

    Supervisor (http://supervisord.org) 是一个用 Python 写的进程管理工具,可以很方便的用来启动.重启.关闭进程(不仅仅是 Python 进程).除了对单个进程的 ...

随机推荐

  1. 使用android快速开发框架afinal的FinalDb操作android数据库

    http://my.oschina.net/yangfuhai/blog/87459 今天给大家介绍下#afinal#来操作android的数据库sqlite. #afinal#是一个android的 ...

  2. 快速幂&快速乘法

    尽管快速幂与快速乘法好像扯不上什么关系,但是东西不是很多,就一起整理到这里吧 快速幂思想就是将ax看作x个a相乘,用now记录当前答案,然后将指数每次除以2,然后将当前答案平方,如果x的2进制最后一位 ...

  3. C++中的STL中map用法详解

    Map是STL的一个关联容器,它提供一对一(其中第一个可以称为关键字,每个关键字只能在map中出现一次,第二个可能称为该关键字的值)的数据 处理能力,由于这个特性,它完成有可能在我们处理一对一数据的时 ...

  4. python在数据处理中常用的模块之matplotlib

    <利用python进行数据分析>读书笔记--第八章 绘图和可视化 python 画子图(add_subplot & subplot)

  5. Qt shortcuts

    ESC 切换到代码编辑模式 F1   查看帮助 F4    .h 与 .c or .cpp之间切换 shift + F2 声明与定义间切换 Ctrl + tab 切换已打开的文件 Ctrl + B 编 ...

  6. HTML格式化标签

    除了div.p.h1~h6.a.span这几个极常用的标签外,HTML还有一些不常见的标签(10个,5对:加粗.斜体.大小.上下标.特殊),默认效果如下: 当然,我们习惯用css编写效果来替代这些效果 ...

  7. my read travel

    s 江苏省5A级旅游景区 ▪ 无锡中视股份三国水浒景区 ( 无锡) ▪ 中山陵景区 ( 南京) ▪ 南京夫子庙 ( 南京) ▪ 周庄古镇游览区 ( 苏州) ▪ 中华恐龙园 ( 常州) ▪ 金坛市 ( ...

  8. thread join和detach的区别

    线程状态: 在一个线程的生存期内,可以在多种状态之间转换,不同的操作系统可以实现不同的线程模型,定义许多不同的线程状态,每个状态还可以包含多个子状态,但大体来说,如下几种状态是通用的: 1)就绪:参与 ...

  9. oracle表结构和表内容差异比对【原】

    oracle表结构和表内容差异比对 oracle中有三种集合操作,他们会把左边和右边的select 结果集进行集合操作. union 并集 intersect 交集 minus 差集 假设有如下两张表 ...

  10. JacobMathType

    JACOB是一个 Java到微软的COM接口的桥梁.使用JACOB允许任何JVM访问COM对象,从而使JAVA应用程序能够调用COM对象,;MathType 是由美国Design Science公司开 ...