设为首页 收藏本站
查看: 1246|回复: 0

[经验分享] Linux上的进程管理

[复制链接]

尚未签到

发表于 2018-5-19 11:42:36 | 显示全部楼层 |阅读模式
  一、何为进程
  通常来讲,进程时运行起来的程序,为什么这样说呢,程序文件是存放在磁盘上的,一旦内核将其加载至内存中运行起来,它就成为了一个进程,而且系统还会给予进程一个ID号,成为PID,用来标识进程。同时根据启动这个进程的使用者的相关属性信息,给予这个PID一组有效的权限配置。
  二、如何产生一个进程
  运行一个程序或者命令就可以触发一个事件而取得一个PID,因为系统只识别二进制程序文件,所以我们可以通过执行系统上的二进制程序文件来运行程序,进而产生进程
  三、如何管理进程
      为方便管理,Linux为我们提供了许多进程管理的命令,下面让我来简单介绍一下
  ▲ps命令   查看进程信息
  ps [option]
  选项有三种风格:
  This version of ps accepts several kinds of options:
  1   UNIX options, which may be grouped and must be preceded by a dash.
  2   BSD options, which may be grouped and must not be used with a dash.
  3   GNU long options, which are preceded by two dashes.
  选项:
  a:所有与终端相关的进程
  x:所有与终端无关的进程;
  u:以用户为中心组织进程状态信息显示;
DSC0000.png

  USER:进程的属主
  PID:进程的PID号,用来表示此进程
  CPU%:占CPU的百分比
  MEM%:占内存的百分比
  VSZ:虚拟内存集
  RSS:常驻内存集
  TTY:与其相关的终端
  STAT:进程的状态
  R:running
        S: interruptablesleeping
        D: uninterruptable sleeping
        T: stopped
        Z: zombie
        +: 前台进程
        l: 多线程进程
        N:低优先级进程
        <: 高优先级进程
        s: session leader,会话(子进程)发起者
  TIME:使用掉CPU的时间
  COMMAND:与此进程相关的命令
   常用组合:
        ●-ef
          -e: 显示所有进程
        -f: 显示完整格式程序信息
  -●eFH

  -F: 显示更完整格式的进程信息
        -H: 以进程层级格式显示进程相关信息
  ● 自定义
  -eo   pid,tid,class,rtprio,ni,pri,psr,pcpu,stat,comm
        axo   stat,euid,ruid,tty,tpgid,sess,pgrp,ppid,pid,pcpu,comm
  ▲top命令  动态的显示进程信息
  界面如下图 ,红色标识的是有关CPU参数,下面的PID,USER那一栏参数基本上和ps命令一样    DSC0001.png      top中有许多的内置命令:
  ●排序:
          P:以占据的CPU百分比,%CPU
          M:占据内存百分比,%MEM
          T:累积占据CPU时长,TIME+
  ●首部信息显示:
          uptime信息:l命令
          tasks及cpu信息:t命令
          cpu分别显示:1 (数字)
          memory信息:m命令
  ●退出命令:q
        ●修改刷新时间间隔:s
        ●终止指定进程:k
        ●保存文件:W
  ▲htop
  htop与top很类似,界面比hop做的漂亮,它通过文字图形化地显示每一个进程的CPU和内存使用量、swap使用量。界面如下图所示
DSC0002.png
    ▲uptime 显示当前时间,系统已启动的时间、当前上线人数,系统平均负载(1、5、10分钟的平均负载,一般不会超过1)

  ●系统平均负载:
        指在特定时间间隔内运行队列中的平均进程数。值越小服务器负载越小
   ●如果每个CPU内核的当前活动进程数不大于3的话,那么系统的性能良好。如果每个CPU内核的任务数大于5,那么这台机器的性能有严重问题。
   ●如果linux主机是1个双核CPU的话,当Load Average 为6的时候说明机器已经被充分使用了。

DSC0003.png      ▲vmstat命令:虚拟内存信

DSC0004.png      ●procs:
      r:等待运行的进程的个数,和核心数有关
      b:处于不可中断睡眠态的进程个数(被阻塞的队列的长度)

  ●memory:
      swpd: 交换内存的使用总量
      free:空闲物理内存总量
      buffer:用于buffer的内存总量
      cache:用于cache的内存总量
  ●swap:
      si:从磁盘交换进内存的数据速率(kb/s)
      so:从内存交换至磁盘的数据速率(kb/s)
  ●io:
      bi:从块设备读入数据到系统的速率(kb/s)
      bo: 保存数据至块设备的速率
  ●system:
      in: interrupts, 中断速率,包括时钟
      cs: context switch, 进程切换速率
  ●cpu:
        us:Timespent running non-kernel code
        sy: Time spent running kernel code
        id: Time spent idle. Linux 2.5.41前,包括IO-wait time.
        wa: Time spent waiting for IO. 2.5.41前,包括in idle.
        st: Time stolen from a virtual machine. 2.6.11前, unknown
  ▲glances  在EPEL源里下载安装
DSC0005.png

  ●常用选项:
      -b: 以Byte为单位显示网卡数据速率
      -d: 关闭磁盘I/O模块
      -f /path/to/somefile: 设定输入文件位置
      -o {HTML|CSV}:输出格式
      -m: 禁用mount模块
      -n: 禁用网络模块
      -t #: 延迟时间间隔
      -1:每个CPU的相关数据单独显示

  ●此外,glances还可以给予C/S模式来监控系统信息
  服务模式:
         glances -s -B IPADDR
         IPADDR: 指明监听的本机哪个地址
       客户端模式:
         glances -c IPADDR
         IPADDR:要连入的服务器端地址
  ▲kill命令:向进程发送控制信号,以实现对进程管理
  常用信号:man 7 signal
      1) SIGHUP: 无须关闭进程而让其重读配置文件
      2) SIGINT: 中止正在运行的进程;相当于Ctrl+c
      9) SIGKILL: 杀死正在运行的进程
      15) SIGTERM:终止正在运行的进程
      18) SIGCONT:继续运行
      19) SIGSTOP:后台休眠
  按PID:kill [-SIGNAL] pid…
    按名称:killall[-SIGNAL] comm…
    按模式:pkill[options] pattern
      -SIGNAL
      -u uid: effective user,生效者
      -U uid: real user,真正发起运行命令者
      -t terminal: 与指定终端相关的进程
      -l: 显示进程名
      -a: 显示完整格式的进程名
      -P pid: 显示父进程为此处指定的进程的进程列表

  ●下图举例通过ps命令查找进程号,然后杀死这个进程

DSC0006.png

DSC0007.png

DSC0008.png

  

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-461982-1-1.html 上篇帖子: diy自己的linux 下篇帖子: linux目录结构1
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表