博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
centos中进程管理工具
阅读量:6622 次
发布时间:2019-06-25

本文共 3522 字,大约阅读时间需要 11 分钟。

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

转载于:https://www.cnblogs.com/reblue520/p/6239884.html

你可能感兴趣的文章
Java中关于WeakReference和WeakHashMap的理解
查看>>
SQL Lazy Spool Eager Spool
查看>>
type的解释
查看>>
python之路--类与类之间的关系
查看>>
Windows Phone 8 开发环境搭建
查看>>
微信小程序了解向指南
查看>>
使用PhoneGap Build
查看>>
全功能web应用服务器Openresty介绍
查看>>
[解决方案]下载别人的工程,storyboard文件不显示界面/UIView
查看>>
解决MySQL Workbench导出乱码问题
查看>>
一些工作实践中的css样式使用
查看>>
半年“攻下”两城,Drive.ai自动驾驶运营之路如何走? | 2018全球智能驾驶峰会...
查看>>
IntelliJ IDEA隐藏文件或文件夹
查看>>
Confluence 6 Microsoft SQL Server 设置准备
查看>>
Hibernate @OneToOne 自动新增和删除
查看>>
小程序 — 选项卡
查看>>
vsts + XX云服务器构建netcore+docker持续集成交付部署
查看>>
史上最贵的国产手机华为 Mate20 系列发布,价格最高超过 15000
查看>>
车好多完成1.62亿美元C+轮融资,获30亿元毛豆总部基地资金支持
查看>>
IIS7浏览虚拟目录显示根目录文件
查看>>