linux进程管理

Posted

tags:

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



进程启动的方式:
    系统引导启动:与终端无关
    用户通过终端启动:与终端相关

进程管理工具中的进程状态表示:
    VSZ:虚拟内存集
    RSS:Resident Size,常驻内存集
   

    STAT:
      R:running  运行状态
      S:interruptable sleeping 可中断睡眠
      D:uninterruptable sleeping 不可中断睡眠
      T:Stopped/TRACED  停止态或追踪状态
      Z:zombie 僵死态
 

进程分类 :                             
    +:前台进程
    l:多线程进程
    N:低优先级进程
    <:高优先级进程
    s:session leader首进程




进程管理之ps


    ps:report a snapshot of the current processes
            
        a:显示所有与终端相关的进程
        u:显示以用户为中心组织进程状态信息
        x:显示所有与终端无关的进程
        -e:显示所有进程
        -f:显示完整格式进程信息
        -F:显示更完整格式进程信息
        -H:以层级结构显示进程信息
        -o field1,field2:自定义显示字段
          常用的field:pid,ni,psr,pcpu,stat,comm,tty,ppid,rtprio

        不指定任何选项则显示当前用户在当前终端打开的进程

        注意:ps选项有三种风格,BSD(选项不带-),GUN(长选项须带--,UNIX选项带-)

    常用组合一:ps aux
      显示所有进程信息(包括状态信息)   

[[email protected]_linux ~]# ps aux
USER        PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root          1  0.2  0.1  19356  1584 ?        Ss   19:22   0:03 /sbin/init
root          2  0.0  0.0      0     0 ?        S    19:22   0:00 [kthreadd]
root          3  0.0  0.0      0     0 ?        S    19:22   0:00 [migration/0]
root          4  0.0  0.0      0     0 ?        S    19:22   0:00 [ksoftirqd/0]
root          5  0.0  0.0      0     0 ?        S    19:22   0:00 [stopper/0]
root          6  0.0  0.0      0     0 ?        S    19:22   0:00 [watchdog/0]
root          7  0.0  0.0      0     0 ?        S    19:22   0:00 [events/0]
root          8  0.0  0.0      0     0 ?        S    19:22   0:00 [events/0]
root          9  0.0  0.0      0     0 ?        S    19:22   0:00 [events_long]
root         10  0.0  0.0      0     0 ?        S    19:22   0:00 [events_powe]
root         11  0.0  0.0      0     0 ?        S    19:22   0:00 [cgroup]
以下内容省略...

         
    常用组合二:ps -ef

      显示所有进程的详细信息

[[email protected]_linux ~]# ps -ef
UID         PID   PPID  C STIME TTY          TIME CMD
root          1      0  0 19:22 ?        00:00:03 /sbin/init
root          2      0  0 19:22 ?        00:00:00 [kthreadd]
root          3      2  0 19:22 ?        00:00:00 [migration/0]
root          4      2  0 19:22 ?        00:00:00 [ksoftirqd/0]
root          5      2  0 19:22 ?        00:00:00 [stopper/0]
root          6      2  0 19:22 ?        00:00:00 [watchdog/0]
root          7      2  0 19:22 ?        00:00:00 [events/0]
root          8      2  0 19:22 ?        00:00:00 [events/0]
root          9      2  0 19:22 ?        00:00:00 [events_long/0]
root         10      2  0 19:22 ?        00:00:00 [events_power_ef]
root         11      2  0 19:22 ?        00:00:00 [cgroup]
root         12      2  0 19:22 ?        00:00:00 [khelper]

                
    常用组合三: ps -eFH
      以层级结构显示所有进程的详细信息

[[email protected]_linux ~]# ps -eFH
UID         PID   PPID  C    SZ   RSS PSR STIME TTY          TIME CMD
root          1      0  0  4839  1584   0 19:22 ?        00:00:03 /sbin/init
root        570      1  0  2814  1356   0 19:22 ?        00:00:00   /sbin/udevd -d
root       2227    570  0  2813  1360   0 19:22 ?        00:00:00     /sbin/udevd -d
root       2228    570  0  2813  1340   0 19:22 ?        00:00:00     /sbin/udevd -d
root       1569      1  0 44332  8000   0 19:22 ?        00:00:02   /usr/sbin/vmtoolsd
root       1594      1  0 12757  9344   0 19:22 ?        00:00:00   /usr/lib/vmware-vg
root       1657      1  0 51499  7024   0 19:22 ?        00:00:01   ./ManagementAgentH

         
    常用组合四:ps -eo,axo
      显示所有进程指定字段的信息

[[email protected]_linux ~]# ps -eo pid,uid,command
   PID   UID COMMAND
     1     0 /sbin/init
     2     0 [kthreadd]
     3     0 [migration/0]
     4     0 [ksoftirqd/0]
     5     0 [stopper/0]
     6     0 [watchdog/0]
     7     0 [events/0]
     8     0 [events/0]
     9     0 [events_long/0]
基本都是root用户创建的进程



进程管理之top  


    
top:显示系统进程(实时动态)

    基本命令:   
      首部信息开关:(显示或关闭)
       uptime信息:l
       task和cpu:t
       内存信息:m
        

      修改刷新时间:s
       终止指定进程:k
       退出命令:q

    常用选项:
      -d #:指定刷新时间间隔
      -b:以批次方式显示(所有进程为一批)
      -n #:显示多少批次

    以批次显示一般搭配重定向输出使用

    注意:top命令式根据窗口的宽度来显示信息,宽度不够的情况下显示的信息会不完整


    top面板信息详解:

技术分享


    top - 20:10:16 系统当前时间   
        up 28 min 系统运行的时间
        1 users 当前系统登录的用户数      
        load average: 0.00, 0.00,0.00 系统平均负载
          三组数分别对应1分钟,5分钟,15分钟前到现在的平均负载
        
    Tasks:  
        92 total 当前系统全部进程数
        1 running 运行状态的进程数
        90 sleeping 睡眠状态的进程数
        1 stopped 停止状态的进程数
        0 zombie 僵尸态的进程数
        
    Cpu(s):  
        0.0%us 用户空间占用cpu时间
        0.3%sy 内核空间占用cpu时间
        0.0%ni 修改过优先升级进程占用cpu的时间
        99.7%id cpu 空闲时间
        0.0%wa cpu 等待IO的时间
        0.0%hi cpu 被硬中断的时间
        0.0%si cpu 被软中断的时间
        
    Mem:   
        1004768k total 系统内存总量   
        876876k used 已经使用的内存
        127892k free 空闲的内存
        103828k buffers 用于内核缓存的内存
        
    Swap:        
        0k total 交换分区总量       
        0k used 已使用的容量       
        0k free 空闲的容量
        604500k cached 从内存中置换到交换分区,而又重新被写回到内存中的容量
          此数据在交换分区中还未被覆盖
        
    PID 进程ID
        USER 进程所有者的用户名
        PR  进程优先级
        NI  进程nice值
        VIRT  进程的虚拟内存总量
        RES  进程的常驻内存容量(未被置换过)
        SHR 进程的共享内存(代表可以被其他进程共享的内存)
        S 进程状态(R运行,S睡眠,D不可中断睡眠,T停止,Z僵尸)
        %CPU 进程占用cpu百分比
        %MEM 进程占用内存百分比
        TIME+ 进程占用cpu的时间总和
        COMMAN 进程的程序名

示例:

    杀掉一个进程(就杀一下top)

top - 20:16:51 up 54 min,  1 user,  load average: 0.00, 0.00, 0.00
Tasks:  91 total,   1 running,  90 sleeping,   0 stopped,   0 zombie
Cpu(s):  0.4%us,  0.4%sy,  0.0%ni, 99.2%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
Mem:   1004768k total,   174608k used,   830160k free,    17400k buffers
Swap:        0k total,        0k used,        0k free,    74928k cached
PID to kill: 3095   (按下k,会提示输入进程PID,输入PID回车即可干掉进程)
   PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND                
  3095 root      20   0 15032 1200  928 R  0.4  0.1   0:01.43 top  (我们于要杀掉的程序)                 
  3020 root      20   0  4064  544  476 S  0.0  0.1   0:00.00 mingetty                
  3005 root      20   0  105m 1840 1412 S  0.0  0.2   0:00.07 bash                    
  3001 root      20   0 99972 4028 3056 S  0.0  0.4   0:00.83 sshd

    

    修改刷新时间

top - 20:24:56 up  1:02,  1 user,  load average: 0.00, 0.00, 0.00
Tasks:  91 total,   2 running,  89 sleeping,   0 stopped,   0 zombie
Cpu(s):  0.0%us,  0.2%sy,  0.0%ni, 99.8%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
Mem:   1004768k total,   174204k used,   830564k free,    17456k buffers
Swap:        0k total,        0k used,        0k free,    74932k cached
Change delay from 3.0 to: 1  (按下s,输入要修改的时间(秒),回车即可)
   PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND                
  1569 root      20   0  173m 8004 4536 S  0.2  0.8   0:05.54 vmtoolsd                
  1657 root      20   0  201m 7024 4088 S  0.2  0.7   0:02.40 ManagementAgent         
  3001 root      20   0 99972 4028 3056 S  0.2  0.4   0:00.92 sshd                    
     1 root      20   0 19356 1584 1272 S  0.0  0.2   0:03.37 init

 


进程管理之htop


 
    htop:

    top的加强版,支持鼠标操作,相比top而言,使用更加人性化,灵活,可以使用方向键下上滚动选择进程,使用左右方向键左右移动查看跟多信息,而不是如top直接砍掉超出窗口大小的信息,另外,相比top的黑白电视般的画面,htop显得华丽不少

    

    常用选项:
        -d #:指定延迟时间间隔
        -u USERNAME:显示指定用户的的进程
        -s CLUME:以指定字段进行排序
        子命令:
            l:显示指定进程所打开的文件列表
            s:跟踪选定进程的系统调用
            t:以层级关系显示各进程状态 

    

技术分享

   


    底部显示功能快捷键

技术分享

 

 使用帮助:


    帮助信息面板

技术分享

 

    F2配置信息

顶部系统资源状态信息显示配置

技术分享


进程属性的隐藏和显示配置

技术分享


进程属性栏的进程属性选项配置

技术分享


界面颜色配置

技术分享

 


    u:仅显示单个用户相关的进程

技术分享

技术分享


    F6进程排序方式

技术分享

其他快捷键排序方式:

    P:cpu占用时间

    M:内存占用时间

    T:进程占用cpu时间总和

    ...

 

    F3进程搜索(只匹配第一个符合条件的进程)

    在底下的搜索框中输入进程的名字即可定位到“第一个”符合条件的进程

技术分享

 

    F4过滤器(只做模糊搜索)

    底下Filter提示栏输入命令名字,即可显示所有符合条件的进程

技术分享

技术分享

  

    F5树状显示进程(再次按下F5即可关闭树状显示)

可以根据USER用户,PRI优先级,NI nice值,VIRT进程虚拟内存,RES常驻内存...等进程排列

关于进程的属性标示符,可以参考top命令讲解

技术分享

更多功能请亲自实践!



进程管理之dstat



    dstat:系统资源监控工具

        集vmstat,iostat,ifstat功能于一身,并且还有额外添加的一些特性,一顶仨,简直没朋友

        dstat [-avf] [options] [delay [count]]
         [-a]:cpu使用总量、磁盘总体读写、接口流量、页面调度、系统中断和上下文切换的次数

技术分享

               

        -v:显示进程状态信息、内存负载、页面调度、磁盘读写、系统中断和上下文切换

技术分享

      

     -f:显示cpu每颗核心的负载、所有单个磁盘负载、每个接口流量、页面调度、系统中断和上下文切换

技术分享

                 
    常用选项:
     -c:cpu使用信息

     -C:显示指定cop核心负载

     -p:显示集成状态信息

     -m:内存使用信息
     -d:磁盘使用信息
     -n:网络接口信息
     -r:IO设备读写信息
     -g:paging,页面调度
     -s:swapped相关数据

示例:

    显示指定的cpu核心负载信息

技术分享

    

     连接相关:

     --socket:显示所有socket连接
     --tcp:tcp相关的socket
     --udp:udp相关的socket
     --raw:raw socket
     --ipc: Inter-Process Communication进程通讯

示例:

技术分享

   

    列出各类负载最高:
     --top-cpu:显示最占用cpu的进程
     --top-mem:最占用内存的进程
     --top-io:最占用IO的进程
     --top-latency:延迟最大的进程

示例:

技术分享

更多--top选项请查看man文档


    dstat还可以将查看的信息以csv文件格式输出

        使用 --output /path/to/file_name


dstat的强大之处还在于能够使用插件扩展其他监控功能,如监控mysql, 以上为基础使用,更高级用法有待学习
   


本文出自 “Rock blog” 博客,请务必保留此出处http://johnsonxu.blog.51cto.com/11214707/1757233

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

linux进程管理

Linux 进程管理命令之ps

Linux--进程管理

Linux 124课程 8管理本地的Linux用户和组控制服务和守护进程

linux 如何启动,停止,查看服务

Linux进程管理