Linux进程查看和管理及作业控制

在linux系统中,内核的功用有:进程管理、文件系统、网络功能、内存管理、驱动程序、安全功能等,在这众多的模块中,进程管理是相对重要的一环,即使不像文件系统和网络功能那么复杂。在进程管理中,内核对进程的创建、切换、撤销和调度都有很详细的定义。 

1、进程类型

    守护进程在系统引导过程中启动的进程,跟终端无关的进程

    前台进程跟终端相关,通过终端启动的进程

            注意:也可把在前台启动的进程送往后台,以守护模式运行

2、进程状态

   在内存中运行的进程也有着各种各样的状态

        运行态R:running

        就绪态:ready

        睡眠态

            可中断S:interruptable

            不可中断D:uninterruptable

        停止态T:stopped,暂停于内存中,但不会被调度,除非手动启动

        僵死态Z:zombie,结束进程,父进程结束前,子进程不关闭

3、进程调度    

      调度策略:调度策略就是这样一组规则:决定什么时候以怎样的方式选择一个新进程运行。所以定义一个进程的优先级来满足这样一种策略。这个策略以0-139的优先级来表示。

           实时优先级:1-99

               无需调整,数字越大,优先级越高

           静态优先级:100-139

               可调整,数字越小,优先级越高

            优先级以Nice值调整

                Nice:-20—-19 ,存在于task_struct结构体中  

公式如下:        

    pri(new)=nice+pri(old)    

    调度算法:早起的Linux中,调度算法是根据进程的优先级选择“最佳”进程来执行,它的缺点是时间开销与“可运行进程数量”有关。某种调度算法一定满足一种函数关系,业界称为Big O        

        Big O:时间复杂度,用时和规模的关系。有:

        O(1), O(logn), O(n)线性, O(n^2)抛物线, O(2^n)

4、进程管理命令之pstree

    pstree – display a tree of processes

    显示进程数

5、进程管理命令之ps

   Linux系统各进程的相关信息均保存在/proc/PID目录下的各文件中;

   ps [OPTION]…

       选项:支持两种风格

           常用组合:aux

                   u: 以用户为中心组织进程状态信息显示

                   a: 与终端相关的进程;

                   x: 与终端无关的进程;

~]# ps aux

USER        PID %CPU %MEM    VSZ   RSS TTY      STAT TART   TIME COMMAND

USER 运行进程的用户
PID 进程ID
%CPU 占用CPU
%MEM 占用内存
VSZ 虚拟内存集
RSS 实际内存集
TTY 终端信息
STAT 进程状态
START 进程状态
TIME 运行时间
COMMAND 进程名称

           常用组合:-ef

           e: 显示所有进程

                   -f: 显示完整格式程序信息

           常用组合:-eFH

                   -F: 显示完整格式的进程信息

                   -H: 以进程层级格式显示进程相关信息

      

6、进程管理命令之pkill

    pkill [options] pattern    

         -u uid: effective user

         -U uid: real user

         -t terminal: 与指定终端相关的进程

         -l: 显示进程名

         -a: 显示完整格式的进程名

         -P pid: 显示其父进程为此处指定的进程的进程列表

7、进程管理命令之pidof

    根据进程名获取其PID

8、进程管理命令之top

wKiom1fPwpTyoAdnAAI5SPDB4JM569.jpg

Tasks

total 进程总数
running 运行进程数
sleeping 休眠态进程数
stopped 停止态进程数
zobie 僵死态进程数

%Cpu(s)

us(user space) 用户空间占用CPU百分比
sy(system) 内核空间占用CPU百分比   注:高负载时:us:sy=7:3
ni(nice) 修改nice值占用的CPU百分比
id(idle)  空闲的CPU百分比
wa(wait)  等待IO完成占用的CPU百分比
hi(hardware interrupt)  硬中断占用CPU百分比
si(software interrupt) 软中断占用CPU百分比
st(stole) 被偷走的CPU,比如VMware
buffer(缓冲) 元数据
cache(缓存) 数据
PID 进程号
USER 进程发起者
PR(priority) 优先级
NI(Nice) nice值
VIRT 虚拟内存集
RES 常驻内存集
SHR 共享内存集
S(status) 状态
%CPU CPU占用比
%MEM 内存占用比
TIME+ 运行时长
COMMAND 启动进程

对显示排序的方法:

P 占据的CPU百分比
M 占据内存百分比
T 累积占据CPU时长

首部信息显示:

l uptime信息
t tasks及cpu信息
#数字 cpu分别显示
m memory信息
s 修改刷新时间间隔
Esc 退出
k 终止指定进程
W 保存文件
q 退出命令

9、进程管理命令之htop   

wKiom1fP0BCjzJ8vAAUL53ILZdo725.jpg

比top更加高级的进程管理软件

f1帮助

f2切换CPU、mem、swap显示方式

f10退出

    常用选项:

       -d #: 指定延迟时间;

       -u UserName: 仅显示指定用户的进程;

       -s COLOMN: 以指定字段进行排序;

   命令:

       s: 跟踪选定进程的系统调用;

       l: 显示选定进程打开的文件列表;

       a:将选定的进程绑定至某指定CPU核心;

       t: 显示进程树

   注意:Fedora-EPEL源


10、进程管理命令之vmstat

wKiom1fP0tOQA_Q4AADefO6sBf8620.jpg

vmstat -s: 内存的汇总信息

procs 项目
r 等待运行的进程的个数,和核心数有关
b 处于不可中断睡眠态的进程个数(被阻塞的队列的长度)
swap 项目
si 从磁盘交换进内存的数据速率(kb/s)
so 从内存交换至磁盘的数据速率(kb/s)
io 项目
bi 从块设备读入数据到内存的速率(kb/s)    读
bo 从内存写入磁盘的速率(kb/s)            写
memory 项目
swad 交换内存的使用总量
free 空闲物理内存总量
buffer 用于buffer的内存总量
cache 用于cache的内存总量
system 项目
in: interrupts 中断速率
cs: context switch 进程切换速率
cpu 项目
us 用户空间占用的比例
sy 内核空间占用的比例
id 空闲空间占用的比例
wa 等待IO完成所消耗的时间比例
st 被虚拟化技术偷走的时间比例

11、进程管理命令之glances

glances [-bdehmnrsvyz1] [-B bind] [-c server] [-C conffile] [-p port] [-P password] [–password] [-t refresh] [-f file] [-o output]

内建命令:

  a  Sort processes automatically     l  Show/hide logs

  c  Sort processes by CPU%           b  Bytes or bits for network I/O

  m  Sort processes by MEM%           w  Delete warning logs

  p  Sort processes by name           x  Delete warning and critical logs

  i  Sort processes by I/O rate       1  Global CPU or per-CPU stats

  d  Show/hide disk I/O stats         h  Show/hide this help screen

  f  Show/hide file system stats      t  View network I/O as combination

  n  Show/hide network stats          u  View cumulative network I/O

  s  Show/hide sensors stats          q  Quit (Esc and Ctrl-C also work)

  y  Show/hide hddtemp stats

常用选项:

-b: 以Byte为单位显示网卡数据速率;

-d: 关闭磁盘I/O模块;

-f /path/to/somefile: 设定输入文件位置;

-o {HTML|CSV}:输出格式;

-m: 禁用mount模块

-n: 禁用网络模块

-t #: 延迟时间间隔

-1:每个CPU的相关数据单独显示;

C/S模式下运行glances命令:

服务模式:

glances -s -B IPADDR

IPADDR: 指明监听于本机哪个地址

客户端模式:

glances -c IPADDR

IPADDR:要连入的服务器端地址


12、进程管理命令之dstat

      dstat [-afv] [options..] [delay [count]]

-c: 显示cpu相关信息;

-C #,#,…,total

-d: 显示disk相关信息;

-D total,sda,sdb,…

-g:显示page相关统计数据;

-m: 显示memory相关统计数据;

-n: 显示network相关统计数据;

-p: 显示process相关统计数据;

-r: 显示io请求相关的统计数据;

-s: 显示swapped相关的统计数据;

–top-cpu:显示最占用CPU的进程;

–top-io: 显示最占用io的进程;

–top-mem: 显示最占用内存的进程;

–top-lantency: 显示延迟最大的进程;


13、进程管理命令之kill

kill命令:

向进程发送控制信号,以实现对进程管理

显示当前系统可用信号:

# kill -l

# man 7 signal

常用信号:

1) SIGHUP: 无须关闭进程而让其重读配置文件;

2) SIGINT: 中止正在运行的进程;相当于Ctrl+c;

9) SIGKILL: 杀死正在运行的进程;

15) SIGTERM:终止正在运行的进程;

18) SIGCONT:

19) SIGSTOP:

指定信号的方法:

(1) 信号的数字标识;1, 2, 9

(2) 信号完整名称;SIGHUP

(3) 信号的简写名称;HUP

向进程发信号:

kill [-SIGNAL] PID…

终止“名称”之下的所有进程:

killall [-SIGNAL] Program

14、Linux的作业控制

前台作业:通过终端启动,且启动后一直占据终端;

后台作业:可以通过终端启动,但启动后即转入后台运行(释放终端);

如何让作业运行于后台?

(1) 运行中的作业

Ctrl+z

(2) 尚未启动的作业

# COMMAND &

此类作业虽然被送往后台运行,但其依然与终端相关;如果希望送往后台后,剥离与终端的关系:

# nohup COMMAND &

查看所有作业:

# jobs

作业控制:

# fg [[%]JOB_NUM]:把指定的后台作业调回前台;

# bg [[%]JOB_NUM]:让送往后台的作业在后台继续运行;

# kill [%JOB_NUM]:终止指定的作业;

原创文章,作者:Net20_赤羽,如若转载,请注明出处:http://www.178linux.com/48528

(3)
Net20_赤羽Net20_赤羽
上一篇 2016-11-14
下一篇 2016-11-14

相关推荐

  • 【马哥linux运维】–马帮高薪就业系列文章之一线资深运维

    时光荏苒,马哥linux运维在北京开校已经有一些时日了,随着大家对马哥linux的密切关注,来跟随小编走进我们马哥linux运维的北京校区 关于学员就业这点事 很多小伙伴在马哥学习一段时间后,获得了快速的成长,不少学员已经进入著名互联网公司拿到了高薪,有的在成长性公司成为技术骨干,有的已经出国等,我们回顾下最近几个月很多学员的成长,收获,自己的心得感受吧 当…

    2015-11-06
  • 马哥教育网络班20期+第10周课程练习

     1. 请详细描述CentOS系统的启动流程(详细到每个过程系统做了哪些事情) 1. 加电自检:POST     通电后主板CMOS中的BIOS(基本输入输出系统)将进行硬件自检并简单设置,根据硬盘等     相关设备情况进入下一步   &…

    学员作品 2016-08-15
  • 马哥教育网络班20期 第10周课程练习

    1、请详细描述CentOS系统的启动流程(详细到每个过程系统做了哪些事情) 简述: 第一阶段:BIOS启动引导阶段;                     &…

    学员作品 2016-08-22
  • linux中用ACL实现灵活的权限管理

    ACL是什么?? ACL英文原意是Access Control List(访问控制列表).它能够实现灵活的权限管理,除了文件的所有者,所属组和其他人,设置相应的权限外,ACL允许你给任何用户或是用户组设置任何文件/目录的访问权限(注意的是有些不支持数字模式的权限给定) ACL有什么用?? 作为UGO权限管理的补充,acl有GUO办不到或者是难以办到的功能 &…

    Linux干货 2016-08-05
  • sed 和 vim 的 用法

    处理文本的工具 三剑客之 sed sed是一种流编辑器,它一次处理一行内容。处理时,把 当前处理的行存储在临时缓冲区中,称为“模式空间”( pattern space),接着用sed命令处理缓冲区中的内容 ,处理完成后,把缓冲区的内容送往屏幕。接着处理下一 行,这样不断重复,直到文件末尾。文件内容并没有改变 ,除非你使用重定向存储输出。Sed主要用来自动编辑…

    Linux干货 2016-08-12
  • 【惊爆】马哥linux2016最新全套课程(内部泄密版)

    你知道么,马哥linux2016最新全套课程(内部泄密版)被曝光了,小编刚刚得到消息,然后就给大家分享出来了,大家快来点评下,话说2016版课程如何?且听小编慢慢为你道来 全新内容,全新阵容,引入ELK和Docker内容,更加贴合生产环境应用,全新的Centos7搭载完善的实战实验室,强大的不像实力派,特别需要说明的一点:0首付0利率,机会不容错过!!! 高…

    学员作品 2015-10-21

评论列表(1条)

  • 娅娃爱
    娅娃爱 2017-11-09 14:19

    汤哥,这篇排版体验有点差啊,文字突然那么大,图也没了