#22 进程、优先级管理命令:vmstat、pmap、htop、glances、dstat、kill、killall、pkill、bg、fg、nice...

简介:

    进程之间可以通信的;IPC,inter-process communication

      1.signal(信号)

      2.semaphore(旗语)

      3.shared memory(SHM)

      4.socket


    有效的信号表示方法:

      1.使用信号的数字编码进行表示;

      2.使用信号的完整名称进行表示;

      3.使用信号的简写名称进行表示,简写名称就是完整名称中不包含“SIG”的其余部分;


    常用的信号:

      1.SIGHUP:无需关闭对应进程而让其重新读取其自身的配置文件;

      2.SIGINT:终止正在运行的前台进程;

      9.SIGKILL:没有任何预兆的终止正在运行的进程,残暴;

      15.SIGTERM:默认信号,终止正在运行的进程;

      18.SIGCONT:让转入后台的进程继续运行;

      19.SIGSTOP:让进程转入后台并停止运行;


    进程作业:

      前台作业:

        foreground job,通过终端启动并且启动后会一直占据终端的进程;


      后台作业:

        background job,可以通过终端启动,但启动后立即转入后台运行,释放终端;


    如何让作业工作于后台:

      1.正在运行的前台作业

        Ctrl+z

        注意:实际上是向此进程发送SIGSTOP信号,使得该进程转入后台以后即停止运行;  


      2.尚未启动的作业,使其启动并转入后台;

        # COMMAND &

        注意:此类作业是从前台启动,启动后立即转入后台,但即便如此,此进程也是与终端相关的进程;如果终端关闭,则此类进程也会终止;


      3.尚未启动的作业,使其启动并转入后台,同时剥离其与终端的关联;

        # nohup COMMAND &


    查看后台作业的信息:

      jobs


    将后台作业转入前台运行:

      fg [JOB_ID]


    使后台作业在后台运行

      bg [JOB_ID]


    终止后台作业:

      kill %JOB_ID


      kill %1


    调整进程优先级:

      0-139

      100-139


      使用nice值调整进程的静态优先级:

        nice值的取值范围是:-20~19

        默认情况下,所有用户进程的初始nice值都是0;默认优先级为120;


      注意:只有超级用户root才能使用负nice值提升进程的优先级;普通用户只能使用正nice值来降低进程的优先级;


  vmstat:显示虚拟内存状态(“Viryual Memor Statics”),但是它可以报告关于进程、内存、I/O等系统整体运行状态。


    其执行显示结果:

      FIELD DESCRIPTION FOR VM MODE

         Procs(进程)

             r: 运行队列中进程数量,这个值也可以判断是否需要增加CPU。(长期大于1)

             b: 等待IO的进程数量。


         Memory(内存)

             swpd: 使用虚拟内存大小,如果swpd的值不为0,但是SI,SO的值长期为0,这种情况不会影响系统性能。

             free: 空闲物理内存大小。

             buff: 用作缓冲的内存大小。

             cache: 用作缓存的内存大小,如果cache的值大的时候,说明cache处的文件数多,如果频繁访问到的文件都能被cache处,那么磁盘的读IO bi会非常小。

             inact: 不活动内存。

             active: 活动内存。


         Swap(虚拟内存)

             si:每秒从交换区写到内存的大小,由磁盘调入内存。

             so: 每秒写入交换区的内存大小,由内存调入磁盘。


         IO(读写)

             bi: 每秒读取的块数

             bo: 每秒写入的块数


         System(系统)

             in: 每秒中断数,包括时钟中断。

             cs: 每秒上下文切换数。


         CPU(以百分比表示)

             These are percentages of total CPU time.

             us: 用户进程执行时间百分比(user time)

             sy: 内核系统进程执行时间百分比(system time)

             id: 空闲时间百分比

             wa: IO等待时间百分比

             st: 虚拟机偷走时间百分比

          

    选项:

      -s:从/proc/meminfo文件中抽取的信息并加工后输出;


      delay:按照deley所指示的时间重复执行vmstat命令,默认单位为秒;

      count:重复执行v模式TAT命令的次数;

    例子:

      vmstat


  pmap:报告进程的内存映射关系,是Linux调试及运维一个很好的工具。

    选项:

      -x, --extended:显示扩展的信息

    例子:

      pidof vim

      3690

      pmap -x 3690


  htop:一款监控软件,可以看成top命令的升级版。

    常用选项:

      -d #:htop刷新的间隔时间;

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

      -s COLUME_NAME:根据指定字段进行排序;

    交互式命令:

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

      t F5:显示进程树结构,以显示进程之间的父子关系;

      a:将选定的进程绑定到某指定的CPU核心运行;

    例子:

      htop


  glances:系统实时监控工具

    常用选项:

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

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

      -m:关闭Mount模块;

      -n:关闭Network模块;

      -1:单独显示每颗CPU核心的数据统计信息;

      -t #:设定刷新时间间隔;

      -o {HTML|CSV}:为输出数据指定输出的格式;

      -f /PATH/TO/OUTPUT_DIR:指定输出文件的路径,glances.html


      glances可以工作于C/S模型下;

        S:服务器模式

          glances -s -B ipaddr

            ipaddr:服务器本地的某个IP地址;


      进程之间可以通信的;IPC,inter-process communication

        1.signal

        2.semaphore 旗语

        3.shared memory(SHM)

        4.socket

    例子:

      glances


  dstat:全能系统信息统计工具。

    常用选项:

      -c,--cup:显示CPU相关的信息

      -d,--disk:显示磁盘相关信息;

      -g,--page:显示page相关信息;

      -n,--net:显示与interface相关信息;

      -y,--sys:现实与系统相关的信息;

      --tpc:显示与TCP连接状态有关的信息;

      --udp:显示与udp连接有关的信息;

      --ipc:

      --raw:

      --socket:

      --top-cpu:显示最占CPU资源的进程;

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

    例子:

      dstat


  kill:用来删除执行中的程序或工作。

    常用选项:

      -l <信息编号>:若不加<信息编号>选项,则-l参数会列出全部的信息名称;

    例子:

      kill -l(查看信号的信息)

    有效的信号表示方法:

      1.使用信号的数字编码进行表示;

      2.使用信号的完整名称进行表示;

      3.使用信号的简写名称进行表示,简写名称就是完整名称中不包含“SIG”的其余部分;


    常用的信号:

      1.SIGHUP:无需关闭对应进程而让其重新读取其自身的配置文件;

      2.SIGINT:终止正在运行的前台进程;

      9.SIGKILL:没有任何预兆的终止正在运行的进程,残暴;

      15.SIGTERM:默认信号,终止正在运行的进程;

      18.SIGCONT:让转入后台的进程继续运行;

      19.SIGSTOP:让进程转入后台并停止运行;   


  killall:使用进程的名称来杀死进程

    选项:

      -e:对长名称进行精确匹配; 

      -l:忽略大小写的不同; 

      -p:杀死进程所属的进程组; 

      -i:交互式杀死进程,杀死进程前需要进行确认; 

      -l:打印所有已知信号列表; 

      -q:如果没有进程被杀死。则不输出任何信息; 

      -r:使用正规表达式匹配要杀死的进程名称; 

      -s:用指定的进程号代替默认信号“SIGTERM”; 

      -u:杀死指定用户的进程。

    例子:

      killall vi

   

  pkill:根据pattern进行进程终止;有可能误伤其他程序;

    选项:

      -o:仅向找到的最小(起始)进程号发送信号; 

      -n:仅向找到的最大(结束)进程号发送信号; 

      -P:指定父进程号发送信号; 

      -g:指定进程组; 

      -t:指定开启进程的终端。

    例子:

      pkill vim


  jobs:用于显示Linux中的任务列表及任务状态,包括后台运行的任务。

    选项:

      -l:显示进程号; 

      -p:仅任务对应的显示进程号; 

      -n:显示任务状态的变化; 

      -r:仅输出运行状态(running)的任务; 

      -s:仅输出停止状态(stoped)的任务。

    例子:

      find / -name password &

      jobs -l(显示当前系统的任务列表)

    注意:要得到以上输出信息,必须在执行jobs命令之前执行命令find / -name password &。否则,执行jobs命令不会显示任何信息。


  bg:用于将作业放到后台运行,使前台可以执行其他任务。

    例子:

      bg 1(后台执行任务号为1的任务)

      find / -name password &(后台执行任务)

      注意:实际上,使用bg命令与在指令后面添加符号"&"的效果是一样的。例如,使用&将find / -name password放到后台执行


  fg:用于将后台作业(在后台运行的或者在后台挂起的作业)放到前台终端运行。

    例子:

      fg 1(将任务转换到前台执行) 

      find / -name password(前台执行命令)


  nice:用于以指定的进程调度优先级启动其他的程序。

    选项:

      -n nice:指定nice值

    例子:

      nice -19 tar zcf pack.tar.gz documents


  renice:针对于已经启动的进程修改其nice值;       

    选项:

      -n nice:调整指定的进程的优先级,在原有的nice值的基础上,在加上此处指定的nice值;

      -g:指定进程组id; 

      -p<程序识别码>:改变该程序的优先权等级,此参数为预设值。 

      -u:指定开启进程的用户名。

    例子:

      renice 1 987 -u daemon root -p 32(将行程id为987及32的行程与行程拥有者为daemon及root的优先序号码加1)




本文转自谁等了谁 51CTO博客,原文链接:http://blog.51cto.com/12486569/1952128
相关文章
|
19天前
|
算法 调度 UED
深入理解操作系统:进程调度与优先级队列
【10月更文挑战第31天】在计算机科学的广阔天地中,操作系统扮演着枢纽的角色,它不仅管理着硬件资源,还为应用程序提供了运行的环境。本文将深入浅出地探讨操作系统的核心概念之一——进程调度,以及如何通过优先级队列来优化资源分配。我们将从基础理论出发,逐步过渡到实际应用,最终以代码示例巩固知识点,旨在为读者揭开操作系统高效管理的神秘面纱。
|
3月前
|
算法 调度 UED
揭秘操作系统背后的暗战:进程调度与优先级反转的惊心动魄!
【8月更文挑战第21天】操作系统核心管理计算机资源,进程调度为其关键功能,决定CPU使用权,影响系统性能与用户体验。优先级反转是多任务环境下常见挑战:高优先级进程因等待低优先级进程占用的资源而被阻塞,导致系统效率下降。通过优先级继承或提升机制可解决此问题,确保系统资源高效利用与响应时间优化。
43 1
|
1月前
|
算法 调度
深入理解操作系统:进程调度与优先级反转问题
【9月更文挑战第36天】操作系统是计算机科学中的核心概念,它管理着计算机的硬件资源和软件进程。在多任务处理环境中,进程调度是保证系统高效运行的关键机制之一。本文将探讨进程调度的基本概念、调度算法以及它们如何影响系统性能。同时,我们还将讨论优先级反转问题,这是一个在实时系统中常见的问题,它可能导致系统响应时间不可预测。通过分析优先级反转的原因和解决方案,我们可以更好地理解操作系统的设计和优化策略。
|
1月前
|
运维 监控 Java
使用jps命令查看Java进程
`jps`是Java开发者和系统管理员的得力助手,它简化了Java进程监控的过程,使得快速检查应用运行状态变得轻而易举。通过合理利用其提供的参数,可以高效地进行故障排查、性能监控及日常管理任务,确保Java应用稳定运行。
68 2
|
2月前
|
存储 算法 前端开发
深入理解操作系统:进程调度与优先级队列算法
【9月更文挑战第25天】在操作系统的复杂世界中,进程调度是维持系统稳定运行的核心机制之一。本文将深入探讨进程调度的基本概念,分析不同的进程调度算法,并着重介绍优先级队列算法的原理和实现。通过简洁明了的语言,我们将一起探索如何优化进程调度,提高操作系统的效率和响应速度。无论你是计算机科学的初学者还是希望深化理解的专业人士,这篇文章都将为你提供有价值的见解。
|
2月前
|
算法 调度
深入理解操作系统:进程调度与优先级反转
【9月更文挑战第21天】在操作系统的心脏跳动着的,是进程调度器。它决定了哪个进程运行,何时运行,以及如何优雅地共享CPU资源。本文将通过浅显易懂的语言和直观的代码示例,探索进程调度的奥秘,揭示优先级反转问题及其解决方案,带领读者领略操作系统中这一精妙绝伦的设计。
|
2月前
|
算法 人机交互 调度
进程调度算法_轮转调度算法_优先级调度算法_多级反馈队列调度算法
轮转调度算法(RR)是一种常用且简单的调度方法,通过给每个进程分配一小段CPU运行时间来轮流执行。进程切换发生在当前进程完成或时间片用尽时。优先级调度算法则根据进程的紧迫性赋予不同优先级,高优先级进程优先执行,并分为抢占式和非抢占式。多队列调度算法通过设置多个具有不同优先级的就绪队列,采用多级反馈队列优先调度机制,以满足不同类型用户的需求,从而优化整体调度性能。
100 15
|
1月前
|
存储 算法 调度
MacOS环境-手写操作系统-34-进程优先级
MacOS环境-手写操作系统-34-进程优先级
18 0
|
3月前
|
算法 调度 UED
探索操作系统核心:进程调度与优先级队列
【8月更文挑战第31天】在计算机的心脏——操作系统中,进程调度是维持系统运行的关键机制。本文将深入浅出地介绍进程调度的概念,并通过一个简单的优先级队列算法示例,展示如何在操作系统设计中实现基本的进程管理。我们将从理论到实践,逐步揭示如何通过代码构建一个模拟的进程调度系统,帮助读者理解这一复杂但至关重要的操作系统特性。
|
3月前
|
jenkins Java Shell
解决jenkins结束后kill掉衍生进程
解决jenkins结束后kill掉衍生进程