• 进程管理工具使用


    常用工具及命令:pstree、ps、pidof、pgrep、top、htop、vmstat、glances、dstat、kill、bg、fg、nice、renice

    一、 pstree - display a tree of processes

     1 yum install psmisc //软件包包含命令pstree、killall、fuser 

    二、ps - report a snapshot of the current processes

       用法:ps [options]           
                    u:以用户为中心组织进程状态信息显示
                    a: 与终端相关的进程
                    x: 与终端无关的进程       
                   -e: 显示所有进程
                   -f: 显示完整格式程序信息
                   -F: 显示完整格式的进程信息
                   -H: 以进程层级格式显示进程相关信息                

    实例:

    [root@alen ~]# ps aux
    USER        PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
    root          1  0.0  0.6 193468  6576 ?        Ss   13:49   0:01 /usr/lib/systemd/systemd --switched-root --system
    root          2  0.0  0.0      0     0 ?        S    13:49   0:00 [kthreadd]
    各条目含义:
        USER: 进程属主
        PID:进程ID
        %CPU: CPU占用时间比
        %MEM: 内存占用时间比
        VSZ:virtual memory size,虚拟内存集
        RSS:ReSident Size,常驻内存集
        TTY: 终端
        START: 进程状态
                R:running
                S:  interruptable sleeping
                D: uninterruptable sleeping
                T: stopped
                Z: zombie
    
                +: 前台进程
                l:多线程进程
                N:低优先级进程
                <:  高优先级进程
                s:   session leader
        START: 启动时间        
        TIME: 进程占用CPU的累计时长       
        COMMAND:进程由哪条命令运行起来的    
    [root@alen ~]# ps -ef
    UID         PID   PPID  C STIME TTY          TIME CMD
    root          1      0  0 13:49 ?        00:00:02 /usr/lib/systemd/systemd --switched-root --system --deserialize 2
    root          2      0  0 13:49 ?        00:00:00 [kthreadd]
    各条目含义:
      UID: 进程属主id
      PID: 进程id
      PPID:父进程id
      C: CPU编号
      STIME: start time
      TTY:终端
      TIME:进程占用CPU累计时长
    [root@alen ~]# ps -eFH
    UID         PID   PPID  C    SZ   RSS PSR STIME TTY          TIME CMD
    root          2      0  0     0     0   1 13:49 ?        00:00:00 [kthreadd]
    root          3      2  0     0     0   0 13:49 ?        00:00:00   [ksoftirqd/0]

    ps -eo {pid,tid,class,rtprio,ni,pri,psr,pcpu,stat,comm}
    ps -axo {stat,euid,ruid,tty,tpgid,sess,pgrp,ppid,pid,pcpu,comm}

      ni:nice值

      pri: priority,优先级

      psr: processor,CPU

      rtprio: 实时优先级

    三、pgrep, pkill - look up or signal processes based on name and other attributes

      用法:pgrep [options] pattern
             pkill [options] pattern
                    -u uuid: effective user,有效用户id
                    -U uuid:real user,实际用户id
                    -t terminal: 与指定终端相关的进程
                    -l: 显示进程名
                    -a: 显示完整格式的进程名
                    -P pid:显示其父进程为此处指定的进程的进程列表

    四、pidof -- find the process ID of a running program,根据进程名获取其PID

    五、top - display Linux processes,动态显示进程状态

    [root@alen ~]# top

    top - 19:43:38 up  5:53,  3 users,  load average: 0.00, 0.01, 0.05
    Tasks: 117 total,   1 running, 114 sleeping,   2 stopped,   0 zombie
    %Cpu(s):  0.0 us,  0.0 sy,  0.0 ni, 99.8 id,  0.2 wa,  0.0 hi,  0.0 si,  0.0 st
    KiB Mem :   997980 total,   454352 free,   154824 used,   388804 buff/cache
    KiB Swap:  2097148 total,  2097148 free,        0 used.   647980 avail Mem 
    
       PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND                                      
       703 root      20   0  298712   6112   4784 S   0.3  0.6   0:24.18 vmtoolsd                                     
         1 root      20   0  193468   6576   4088 S   0.0  0.7   0:02.07 systemd                                      
         2 root      20   0       0      0      0 S   0.0  0.0   0:00.01 kthreadd  
      内置命令:
        排序:
          P:以占据的CPU百分比排序
          M:以占据的内存百分比排序
          T:以累计占据CPU时长排序
        首部信息显示与关闭:l键
        Tasks及cpu信息显示与关闭:t键
            cpu分别显示:数字1
        memory信息: m键
        修改刷新时间间隔:s键
        终止指定进程:k键
        退出命令:q键
      选项:
        -d #: 指定刷新时间间隔,默认为3秒
        -b: 以批次方式显示
        -n #: 显示多少批次
    第一行:
       top - 19:43:38 up 5:53, 3 users, load average: 0.00, 0.01, 0.05
       当前系统时长 运行时长  当前系统登录的用户数    平均负载(过去一分钟、五分钟、十五分钟)
    第二行:
       Tasks: 117 total, 1 running, 114 sleeping, 2 stopped, 0 zombie
          运行的进程数  运行状态的进程数  睡眠态的进程数  停止态的进程数  僵死态的进程数
    第三行
       %Cpu(s): 0.0 us, 0.0 sy, 0.0 ni, 99.8 id, 0.2 wa, 0.0 hi, 0.0 si, 0.0 st
       用户空间程序占用的百分比  内核空间   nice值 空闲比例 wait等待io完成的时间   处理硬件中断  处理软中断(模式切换)  虚拟化技术所使用的时间
    第四行 
      KiB Mem : 997980 total, 454352 free, 154824 used, 388804 buff/cache
             物理内存总空间    空闲空间     已用空间    buff和cache占据的空间
      KiB Swap: 2097148 total, 2097148 free, 0 used. 647980 avail Mem
            总空间      空闲空间                 可用空间
      PID   USER PR NI VIRT   RES    SHR S %CPU %MEM TIME+ COMMAND
      进程号  进程属主 优先级  nice值   虚拟内存集 常驻内存集 共享内存大小 进程状态  

     六、htop - interactive process viewer,动态显示进程状态,(需要设置EPEL源)

    [root@alen ~]# htop
        选项:
          -d #:指定延迟时间
          -u UserName: 仅显示指定用户的进程
          -s COLOMN:以指定字段进行排序
        s:跟踪选定进程的系统调用
        l:跟踪选定进程打开的文件列表
        a:将选定的进程绑定至某指定cpu核心
        t:显示进程数

    七、vmstat - 报告虚拟内存的统计信息

      用法:vmstat [-n] [延时[次数]]

    [root@alen ~]# vmstat
    procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
     r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
     1  0      0 679632   2120 175388    0    0    69     4   93  109  0  0 99  0  0
        procs:
                r: 等待运行的进程的个数
                b:处于不可中断睡眠态的进程个数:(被阻塞的队列的长度)
        memory:
                swap: 交换内存的使用总量
                free:空闲物理内存总量
                 buffer:用于buffer的内存总量
                cache:用于cache的内存总量
        swap:
                si:数据进入swap中的数据速率(kb/s)
                so:数据离开swap中的数据速率(kb/s)
        io:
                bi:从块设备读入数据到系统的速率(kb/s)
                bo:保存数据至块设备的速率
        system:
                in:interrupts,中断速率
                cs:context switch,进程切换速率
        cpu:
                us:用户空间占据cpu的比例
                sy:内核空间占据cpu的比例
                id:空闲比例
                wa: 等待IO完成所消耗的时间比例
                st:被虚拟化技术使用的时间比例
    选项:
            -s: 显示内存的统计数据

    八、pmap - report memory map of a process,报告内存的映射关系

    pmap [options] pid [...]
        -x:显示详细格式的信息

      另外一种实现:

    cat /proc/PID/maps

    九、glances - A cross-platform curses-based system monitoring tool

        用法:glances [OPTIONS]: h打开帮助选项            
    内建命令:
    a Sort processes automatically b Bytes or bits for network I/O c Sort processes by CPU% l Show/hide alert logs m Sort processes by MEM% w Delete warning alerts u Sort processes by USER x Delete warning and critical alerts p Sort processes by name 1 Global CPU or per-CPU stats i Sort processes by I/O rate I Show/hide IP module t Sort processes by TIME D Enable/disable Docker stats d Show/hide disk I/O stats T View network I/O as combination f Show/hide filesystem stats U View cumulative network I/O n Show/hide network stats F Show filesystem free space s Show/hide sensors stats g Generate graphs for current history 2 Show/hide left sidebar r Reset history z Enable/disable processes stats h Show/hide this help screen 3 Enable/disable quick look plugin q Quit (Esc and Ctrl-C also work) e Enable/disable top extended stats / Enable/disable short processes name 0 Enable/disable Irix process CPU
    常用选项:          -b: 以Byte为单位显示网卡数据速率
                            -d:关闭磁盘I/O模块
                            -f /path/to/somefile: 设定输入文件位置及其格式
                            -o {html|CSV}: 输出格式
                            -m:禁用mount模块
                            -n:禁用网络模块
                            -t #:延迟时间间隔
                            -l:每个CPU的相关数据单独显示

    C/S模式下运行glances命令 

    服务模式:
            glances -s -B 192.168.0.108  //指明监听于本机哪个地址
    客户端模式:
            glances -c 192.168.0.108    //要连入的服务器地址

    十、dstat - versatile tool for generating system resource statistics,用来显示系统资源统计数据的精巧的工具

    用法:dstat [-afv] [options..] [delay [count]]
                            -c:显示cpu相关信息
                                    -C #,#...,total
                            -d:显示disk相关信息
                                    -D total,sda,sdb,...
                            -g: 显示page相关统计数据
                            -i:显示中断的统计数据
                            -m: 显示memory相关统计数据
                            -n: 显示network相关统计数据
                            -p:显示process相关统计数据
                            -r:显示io请求相关统计数据
                            -s:交换内存的相关统计数据
                            --tcp
                            --udp
                            --unix
                            --raw
                            --socket
                            -ipc: 进程间通信
                            --top-cpu:显示最占用cpu的进程
                            --top-io:显示最占用io的进程
                            --top-mem:显示最占用内存的进程
                            --top-lantency:显示延迟最大的进程

    十一、kill - 终止进程 

    kill -l 或 man 7 signal
    常用信号:
        1)    SIGHUP: 无须关闭进程而让其重读配置文件
        2)    SIGINT:中止正在运行的进程,相当于Ctrl+c
        9)    SIGKILL: 杀死正在运行的进程
        15)    SIGTERM:终止正在运行的进程
        18)    SIGCONT:发信号让进程继续运行
        19)    SIGSTOP:发信号让进程停止态
    
       向进程发信号:
            kill [ -SIGNAL ] PID...
      终止“名称”之下所有的进程:
    killall [ -SIGNAL ] Program

    十二、linux作业控制

      前台作业:通过终端启动,且启动后一直占据终端

      后台作业:通过终端启动,但启动后即转入后台(释放终端)  

    让作业运行于后台:   
      1.运行中的作业:  Ctrl+z
      2.尚未启动的作业: COMMAND &  //这种方式虽然被送往后台,但依然会与终端相关
          # nohup COMMAND &  //送往后台后与终端无关

      查看所有作业:# jobs 

      作业控制:

    #fg      [[%]JOB_NUM]:把指定的后台作业调回前台
    #bg      [[%]JOB_NUM]:让送往后台的作业在后台继续运行
    #kill    [[%]JOB_NUM]: 终止指定的作业

    十三、进程优先级

      静态优先级: 100-139

      进程默认启动的nice值为0,优先级为120

      nice命令:     

    nice [OPTIONS] [COMMAND [ARG]...]  
          -n   # :    //如果不指定n的值则默认为10,也就是优先级130

      renice命令: 

    renice [-n] priority pid...    //对已经运行的进程设置nice值

      查看进程nice值:

    ps  axo  pid,comm,ni

    未涉及到的其他命令:sar,tsar,iostat,iftop

      

      

  • 相关阅读:
    C++的虚函数与多态
    Qt界面的个性设置QSS
    Qt添加背景图片应该注意的问题
    c/c++的函数参数与返回值
    堆和栈
    linux下挂载u盘
    Qt的主窗口弹出消息框
    智能家居实训系统的项目有感!
    Qt 快捷键
    FB
  • 原文地址:https://www.cnblogs.com/ckh2014/p/9567501.html
Copyright © 2020-2023  润新知