Linux系统管理——进程管理

Posted exproration

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux系统管理——进程管理相关的知识,希望对你有一定的参考价值。

************************************如有写错或者不准之处还请指出************************************

1-1Linux进程介绍与进程管理的作用

  Linux系统管理员面临的最复杂的任务之一就是追踪运行在系统中的程序。想要监看这些运行的 程序,那就要熟悉ps命令的用法。下面将介绍ps,pstree,top,kill,killall,pkill和nice等命令。

  (1)进程简介

    进程:是指当程序运行在系统上时,称之为进程。(或者另一种解释)

    进程是正在执行的一个程序或命令,每一个进程都是一个运行的实体,都有自己的地址空间,并占用一定的系统资源。

  (2)进程管理的作用

    1.判断服务器的健康状态   ----->在服务器中主要作用

    2.查看系统中所有进程。

    3.杀死进程  ------>服务器中不是很重要的作用。(注意:即使cpu占用99%及以上,也不能随意杀死进程)

1-2进程查看ps和pstree命令

  Linux系统中使用的GNU  ps命令支持3种不同的类型的命令行参数:

    1.Unix风格的参数:前面加破折号;

    2.BSD风格的参数:前面不加剖折号;

    3.GNU风格的参数:前面双破折号。

   详细的区别在此不再论述。(可以百度) 

   (1)查看所有进程

      1.ps  aux      #查看系统中的所有进程,使用BSD风格

      2.ps  -le     #查看系统中的所有进程,使用Linux风格

      其中常用的选项:

        -a:显示一个终端的所有进程,除了会话引线。

        -u:显示进程的归属用户及内存的使用情况。

        -x:显示没有控制终端的进程。

        -l:长格式显示。显示更加详细的信息。

        -e:显示所有进程,和-A作用一样。

      3.ps  -aux命令也是可以执行没问题的:加上一个“-”会有一行报错,但并不影响,加‘-’是Linux的风格。不加为BSD风格。

技术图片

而使用ps aux则没有:

技术图片  

想知道详细信息我们可以man ps。(

  (2)ps的输出

    技术图片

 

 

 

 

 

 

技术图片

  详细的ps命令的输出情况可以对照上面的图。

  其中START列为双字符状态码,能比Unix风格输出的单字符状态码更详细。其中第一个字符采用了和Unix风格s列相同的值,表明进程是在休眠,运行还是等待等等。第二个字符进一步说明进程的特点。

第一个字符:

  O:正在运行;

  S:休眠;

  T:停止;

  R:可运行,正等待运行;

  Z:僵化,进程已结束但父进程已不存在;

第二个字符:

  <:该进程运行在高优先级上;

  N:进程运行在低优先级上;

  L:该进程有页面锁定在内存中;

  s:该进程是控制进程(包含子进程);

  l:该进程是多进程的;

  +:该进成位于后台。

  (3)查看进程树pstree命令

    pstree  [选项]   #查看进程树

    选项:-p  :显示进程的PID

       -u:显示进程的所属用户

    具体运行:

技术图片

    完整的太长了...所以...

1-3进程查看top命令

   (1)查看系统的健康状态

    top [选项]   #查看系统的健康状态

    选项:-d:指定top命令每隔几秒更新(默认是3s)一般我们不需要更改。

       -b:使用批处理模式输出。一般和‘-n’选项合用

       -n  次数 :指定top命令执行的次数。一般和‘-b’选项合用

    在top命令的交互中可以执行的命令(即top命令正在刷新的过程中按下下面的键,按esc键退出到top中):

       ?或者h:显示交互的帮助  

       P:已使用cpu使用率排序,默认是此项

       M:以内存的使用率排序

       N:以PID排序

       q:退出top

   *** 建议:承担高负载的服务器,如游戏,电影,视频等网站的服务器就,建议每周重启一次。

  如果我们想看到全部的进程信息,可以使用-b -n选项合用。

如:ps  -b  -n 1 > top.log    #批处理 每1s刷新一次,存到top.log文件中(其中>为输出重定向)

然后我们可以输入vi top.log命令就可以看到完整的进程信息了。

  (2)top前五行解读

技术图片

技术图片

技术图片

     技术图片

技术图片

  其中,buffers 缓冲是用来加速写入,cached缓存是用来加速读取的。

  服务器健康评判最重要看的数据:1.load average:0.0,0.0,0.0;2.cpu空闲率(100%id);3内存空闲空间(6780k free);4.swap空闲内存第五行的(5424802k free)。

1-4杀死进程

    1.kill命令(杀死单一进程)

    kill -l   #查看可用的进程信息,如果不加信号的编号参数,则使用“-l”参数会列出全部的信号名称

技术图片

    部分信号说明如下:

技术图片    

  例如:kill  -9  2236       #强制杀死2236号进程;

   或者kill  -KILL 2236   #强制杀死2236号进程

    kill  -HUP  1523        #吧1523号阿帕奇服务器进程重启一遍(这样重启阿帕奇服务器是平缓重启不会导致已经登录的用户掉线),注意一定要是进程ID号,不能为进程名

   或者kill  -1  1523 与上面一样的作用

    注意:只有在该进程正常终止无效时,才执行强制终止杀死该进程,不能随意强制杀死进程。(避免出现用户体验很差。)

  2.killall命令(杀死多个进程

    killall [选项] [信号] 进程名      #按照进程名杀死进程

    选项: -i   :交互询问是否要杀死该进程。

       -I:忽略大小写

    例如:killall  -i   -9  httpd     #杀死httpd进程,注意killall后面一定要写进程名,来杀死一系列此进程。 

  3.pkill命令

    pkill [选项] [信号] 进程号    #按照进程号终止进程

    选项:-t 终端号 :按照终端号踢出用户

    例如:pkill  -9  -t  pts/1      #强制杀死以pts/1虚拟终端登录的进程。

******若两个用户都是root超级用户,那么先下手为强。看谁先执行踢出对方命令。

    w       #使用w命令查看下本机已经登录的用户

   例如:

技术图片

1-5修改进程优先级

  (1).进程优先级介绍

    Linux操作系统是多用户,多任务操作系统,Linux系统中通知运行着非常多的进程,但是cpu在同一时钟周期内只能运算一个指令。那么进程优先级决定了每一个进程的处理先后了。

    ps -le    #查看进程

技术图片

其中,PRI代表Priority,NI代表Nice,这两个值都是代表优先级,数字越小优先级越高。

注意:PRI值是 无法修改的(即使你是root用户),而NI值是可以修改的,所以我们是通过修改NI值来改变优先级的。PRI与NI值之和决定优先级

    修改NI值是时有几个要注意的事项:

      1.NI值的范围是-19到20;

      2.普通用户调整NI值的范围是0到19,而且只能调整自己的进程;

      3.普通用户只能调高NI值,而不能降低NI值,如原本NI值为0,则只能调整值为大于0;

      4.root用户才能设定进程NI值为负数,而且可以调整任何用户任何进程;

      5.PRI(最终值)=PRI(原始值)+NI;

      6.用户只能修改NI值,而不能修改PRI值。

  2.nice命令(修改NI值)

   nice  [选项]  命令           #nice命令可以给新执行的命令直接赋予NI值,但是不能修改已经已经存在的进程值。(若要修改已经存在的用renice命令)

   选项:-n  NI值  :给命令赋予NI值

   例如:

      service  httpd  stop      #先暂停阿帕奇服务器

      nice  -n  -5  service httpd start    #在给httpd赋予NI值为5

   技术图片

 

 

 

 

    

   renice [优先级]  PID       #renice命令是修改已经的进程NI值

  例如:renice  -10  2125         #

注意:进程优先级的修改是认为感观无法察觉的 ,除非是做Linux内核裁剪,或者嵌入式开发等可以感觉到。

最后,不懂的命令都是可以通过man  命令进行查询Linux官方文档。

    

 

************************************如有写错或者不准之处还请指出************************************

 

以上是关于Linux系统管理——进程管理的主要内容,如果未能解决你的问题,请参考以下文章

Linux系统管理——进程管理

Linux系统进程管理

[Linux]系统管理: 进程管理(ps/top/pstree/kill/pkill), 工作管理, 系统资源查看, 系统定时任务

linux系统管理之进程管理

Linux系统管理

进程管理及理解和增加Linux系统调用??