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

Linux进程/进程管理工具

时间:2018-03-17 16:14:18      阅读:217      评论:0      收藏:0      [点我收藏+]

标签:Linux   进程管理   top   htop   glances   

  • Linux进程概念

  • Linux下进程的管理(进程管理命令以及一些工具)


  • 1. Linux进程的概念

              进程是操作系统的概念,每当我们执行一个程序时,对于操作系统来讲就创建了一个进程,在这个过程中,伴随着资源的分配和释放。可以认为进程是一个程序的一次执行过程。

                通俗点讲,想象一台独立的电脑,里面有很多用户自行安装的程序,用户打开应用程序,这个操作就是把程序调到内存中执行,在内存中执行的这个“程序”就是进程,无论实在Linux中还是Windows中,产生进程的同时都会生成一个ID称之为PID,也就是进程号。进程从发起到最后结束中间的过程中可能处于多种状态,如下:

                运行状态:running 进程正在运行中

                就绪状态:ready     进程准备运行

                睡眠状态:sleeping  处于休眠状态(分为可中断睡眠不可中断睡眠:通常指被I/O阻塞的进程,等待I/O满足之前无法继续运行

                僵死状态:zombie   找不到归宿的进程,父进程不来管理或者父进程已经死掉

                停止状态:stopped  不可被调度运行

    2. Linux下进程的管理

                进程分为守护进程前台进程守护进程即为系统引导过程中启动的进程,与终端无关前台进程跟终端相关,通过终端启动的进程,当然,也可以把在前台运行的进程送往后台,以守护模式运行,进程还可以根据占用资源的多少来分为CPU密集型I/O密集型,CPU密集型是对CPU占用率较高的进程,。I/O密集型是等待I/O时间长的进程

                进程管理命令:ps/stat/top/htop/glances

                

      2.1 ps  :显示系统当前进程的运行状况            

                     ps命令下面的选项集成了UNIX,GNU,BSD三种风格的选项,常用的有-ef/aux/axo

                     ps -ef:

                     技术分享图片

                        UID/PID/PPID:该进程的发起者/进程号/父进程号

                        C: CPU的使用率,百分比

                        STIME:进程的启动时间,即什么时间启动的进程

                        TTY:登陆者的终端位置,远程登录则提示pts/n。本地登录显示ttyn, ?表示系统进程

                        TIME: 进程实际花费CPU运行时间,不是系统时间

                        CMD: command缩写,触发此进程的命令

                    ps aux:

                     技术分享图片

                        USER: 进程的发起者

                        PID: 进程号

                        %CPU:进程耗费CPU资源的百分比

                        %MEM:进程所占用物理内存的百分比

                        VSZ: 进程用掉的虚拟内存大小,单位KB

                        RSS: 进程占用的固定内存大小,单位KB

                        TTY: 进程在哪个终端运行

                   STAT:进程目前的状态(状态有好多种,如下

                                R:running  运行状态

                                S:interruptible sleeping  可中断睡眠

                                D:uninterruptible sleeping  不可中断睡眠

                                T:stopped  停止运行

                                Z:zombie  僵尸进程

                                        s:session leader

                                        +:前台进程,占据终端的进程

                                        l:多线程进程

                                        <:高优先级进程

                                        N:低优先级进程

                        TIME:进程实际使用CPU的时间

                        COMMAND:触发进程的命令

                    ps axo :自定义显示进程信息

                        常用的自定义选项:pid/command/psr/pri/ni

                            psr: 当前进程运行的CPU编号

                            pri: 当前进程的优先级

                            ni:  当前进程的nice值

                        技术分享图片

                        自定义选项可以只用一个,若同时用多个时用 "," 隔开即可

                    很多时候直接显示出来的信息,并不是我们想要找的,所以就需要过滤一下信息内容

                    pgrep: 搜索进程    

                        -U : 仅显示以指定用户身份运行的进程

                        -G :仅显示以指定用户组身份运行的进程

                        -l :显示PID和进程名

                    pidof : 显示指定命令所启动的进程ID

                        例:pidof vim                     

                        技术分享图片


                    以上的一些查看进程相关信息的命令都是静态的,当然,很多时候需要实时监控来获取信息,所以也需要一些可以实现动态监测的工具

      2.2  top  : 相对ps 而言,ps仅是显示静态、执行时间点的进程状态信息,top可以实现动态获取进程信息

                        技术分享图片        

                        信息量有点繁琐,不过很有条理

                       第一行:系统时间(09:34:00)、系统启动到此时此刻锁经过的时间(22:15)、当前系统已经登录的用户数量 3 users、系统在1,5,15分钟的平均负载,数值越小表示系统剩余资源越多越空闲,如果这个值高于1,就需要注意当前系统负载可能过高

                        第二行:显示的是目前进程的总量与个别程序在什么状态,图示为1个正在运行、143个出于睡眠状态、0个停止状态的进程、0个僵死状态(如果有僵死状态的程序则需要查看是哪个进程)

                        第三行:显示CPU的整体负载,如果是多核心CPU,可以按下数字1来切换不同CPU的负载状况

                        技术分享图片

                                us: user space用户运行程序占用CPU的百分比

                                sy: system(kernel space) 用于运行内核占用CPU的百分比

                                ni: nice 用户进程空间所改变过优先级的进程占用CPU的百分比

                                di: idle空闲CPU百分比

                                wa: wait io 等待I/O所花费的时间

                                hi: hardware interrupt硬件中断占用CPU的百分比

                                si:software interrupt软件中断占用CPU的百分比

                                st:stolen 被虚拟机“偷走”的百分比

                        第四行:表示物理内存的使用状况

                        第五行:表示交换分区的状况

                        第六行:默认空行,做输入命令用途

                                    top内建命令集:P:以占据CPU大小排序//M:以占据Memory空间大小排序//T:CPU累计占用时间的排序//l:显示系统是否负载运行//t:是否显示进程摘要信息以及CPU负载状态//数字1:平均或者单独显示CPU的负载状态//m:是否显示内存相关的状态信息//q: 退出//s:修改延迟时长//k:终止指定进程

      2.3 htop  :top 命令的增强版,默认未安装,需要epel源安装

                        技术分享图片

                        大体上看起来跟top差不多,不过颜色至少是很好看了 

                        htop界面所支持的交互式命令

                                u:选择显示指定用户的进程

                                l:显示光标所在进程所打开的文件列表 

                                s:显示光标所在进程执行的系统调用

                                a:绑定进程到指定的CPU

                                #:快速定位光标至PID为#的进程上

                                t:显示树状结构(进程之间的关系树状图)

      2.4  glances  :  可以在终端上实时显示重要的系统信息,并动态的对其更新,这个工具可以作用于任何终端屏幕,并且不会消耗大量的CPU资源,通常低于2%。此外glances工具可以将数据捕获生成一个文件,便于日后分析或绘制图形,输出文件可以是电子表格的形式或者html格式

                    默认是没有安装的,可以用epel源安装 

                    技术分享图片

                    glances工具还支持远程模式:

                            Server:以监听模式启动glances    

                                启动方式:glances -s -B IPADDR

                                                -B 用于指明监听本地地址

                            Client:以远程模式启动glances,远程炼乳指定服务器,并Server上的相关性能数据

                                启动方式:glances -c IPADDR 

                                                -c 用于连入的服务器的地址 

                    


            当系统出现问题的时候,排查的过程中这些工具可能都会用到,因为每一个工具或简单或复杂,都有它自己的用途,很多情况下从最简单的工具排查问题开始,一步一步到最后使用类似htop、glances一类的强大工具,总有一个能找出问题所在              

    Linux进程/进程管理工具

    标签:Linux   进程管理   top   htop   glances   

    原文地址:http://blog.51cto.com/11742700/2087911

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