zoukankan      html  css  js  c++  java
  • centos中进程管理工具

    进程管理:
     二进制的格式为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





         



  • 相关阅读:
    eclipse下载
    maven-jdk版本配置
    winform中的ListBox和ComboBox绑定数据
    C和C#两种方式实现邮件的简单接收
    .Net遍历窗体上控件
    C和C#两种方式实现邮件的简单发送
    Gtk基础学习总结(二)
    Gtk基础学习总结(一)
    你要知道的C与C++的区别
    C程序中引用自定义的C函数模块
  • 原文地址:https://www.cnblogs.com/reblue520/p/6239884.html
Copyright © 2011-2022 走看看