码迷,mamicode.com
首页 > 系统相关 > 详细

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

时间:2017-07-30 23:30:58      阅读:274      评论:0      收藏:0      [点我收藏+]

标签:进程   优先级   管理命令   

    进程之间可以通信的;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)


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

标签:进程   优先级   管理命令   

原文地址:http://12486569.blog.51cto.com/12476569/1952128

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!