美文网首页
linux进程管理

linux进程管理

作者: Cookie_hunter | 来源:发表于2018-03-20 15:45 被阅读0次

    top 工具的使用

    top 工具是我们常用的一个查看工具,能实时的查看我们系统的一些关键信息的变化


    我们看到 top 显示的第一排,

    内容 -----------------------------解释
    top -------------------------------表示当前程序的名称
    11:05:18 ------------------------表示当前的系统的时间
    up 8 days,17:12 --------------表示该机器已经启动了多长时间
    1 user ---------------------------表示当前系统中只有一个用户
    load average: 0.29,0.20,0.25 --分别对应1、5、15分钟内cpu的平均负载

    来看 top 的第二行数据,基本上第二行是进程的一个情况统计

    内容 ------------------------------解释
    Tasks: 231 total -----------------进程总数  
    1 running ------------------------1个正在运行的进程数
    229 sleeping -----------------------229个睡眠的进程数
    1 stopped  -------------------一个停止的进程数
    0 zombie -----------------------------没有僵尸进程数

    来看 top 的第三行数据,这一行基本上是 CPU 的一个使用情况的统计了

    内容 解释
    Cpu(s): 0.7%us ------------用户空间进程占用CPU百分比
    0.3% sy -----------------------内核空间运行占用CPU百分比
    0.0%ni -----------------------用户进程空间内改变过优先级的进程占用CPU百分比
    99.0%id ---------------------空闲CPU百分比
    0.0%wa ---------------------等待输入输出的CPU时间百分比
    0.0%hi -----------------------硬中断(Hardware IRQ)占用CPU的百分比
    0.0%si -----------------------软中断(Software IRQ)占用CPU的百分比
    0.0%st -----------------------(Steal time) 是 hypervisor 等虚拟服务中,虚拟 CPU 等待实际 CPU 的时间的百分比

    来看 top 的第四行数据,这一行基本上是内存的一个使用情况的统计了:

    内容 ----------------------------解释
    1961108total ----------------物理内存总量
    196280used ----------------使用的物理内存总量
    701256free ------------------空闲内存总量
    1063572buffers --------------用作内核缓存的内存量

    来看 top 的第五行数据,这一行基本上是交换区的一个使用情况的统计了

    内容 ---------------------------解释
    total -----------------------------交换区总量
    used --------------------------使用的交换区总量
    free -----------------------------空闲交换区总量
    cached -------------------------缓冲的交换区总量,内存中的内容被换出到交换区,而后又被换入到内存,但使用过的交换区尚未被覆盖

    在下面就是进程的一个情况了

    列名 解释
     PID ------------------------进程id
    USER ----------------------该进程的所属用户
    PR -----------------------------该进程执行的优先级 priority 值
    NI -------------------------------该进程的 nice 值
    VIRT -----------------------该进程任务所使用的虚拟内存的总数
    RES ------------------------该进程所使用的物理内存数,也称之为驻留内存数
    SHR ------------------------该进程共享内存的大小
    S ------------------------------该进程进程的状态: S=sleep R=running Z=zombie
    %CPU ---------------------------该进程CPU的利用率
    %MEM ----------------------------该进程内存的利用率
    TIME+ ----------------------------该进程活跃的总时间
    COMMAND ----------------------该进程运行的名字

    常用交互命令 ------------解释

    q ----------------------------退出程序
    I ----------------------------切换显示平均负载和启动时间的信息
    P ---------------------------根据CPU使用百分比大小进行排序
    M ---------------------------根据驻留内存大小进行排序
    i ---------------------------忽略闲置和僵死的进程,这是一个开关式命令
    k ----------------------------终止一个进程,系统提示输入 PID 及发送的信号值。一般终止进程用 15 信号,不能正常结束则使用 9 信号。安全模式下该命令被屏蔽。

    ps 工具的使用

    ps 也是我们最常用的查看进程的工具之一,我们通过这样的一个命令来了解一下,他能给我带来哪些信息




    内容 ----------------------------------------解释
    F ---------------------------------------------进程的标志(process flags),当 flags 值为 1 则表示此子程序只是 fork 但没有执行 exec,为 4 表示此程序使用超级管理员 root 权限
    USER -----------------------------------------进程的拥有用户
    PID ----------------------------------------进程的 ID
    PPID --------------------------------------其父进程的 PID
    SID ------------------------------------------session 的 ID
    TPGID -------------------------------------前台进程组的 ID
    %CPU -------------------------------------进程占用的 CPU 百分比
    %MEM ------------------------------------占用内存的百分比
    NI -------------------------------------------进程的 NICE 值
    VSZ --------------------------------------进程使用虚拟内存大小
    RSS --------------------------------------驻留内存中页的大小
    TTY --------------------------------------------终端 ID
    S or STAT --------------------------------------进程状态
    WCHAN --------------------------------正在等待的进程资源
    START   -----------------------------启动进程的时间
    TIME --------------------------------------------进程消耗CPU的时间
    COMMAND ------------------------------命令的名称和参数

    TPGID栏写着-1的都是没有控制终端的进程,也就是守护进程

    STAT表示进程的状态,而进程的状态有很多,如下表所示

    状态 ------------------------------------解释
    R ----------------------------------------Running.运行中
    S ----------------------------------------Interruptible Sleep.等待调用
    D ----------------------------------------Uninterruptible Sleep.不可中断睡眠
    T ----------------------------------------Stoped.暂停或者跟踪状态
    X ----------------------------------------Dead.即将被撤销
    Z ----------------------------------------Zombie.僵尸进程
    W -----------------------------------------Paging.内存交换
    N ----------------------------------------优先级低的进程
    < ----------------------------------------优先级高的进程
    s ----------------------------------------进程的领导者
    L -----------------------------------------锁定状态
    l -----------------------------------------多线程状态

    • ----------------------------------------前台进程

      其中的D 是不能被中断睡眠的状态,处在这种状态的进程不接受外来的任何 signal,所以无法使用 kill命令杀掉处于D状态的进程,无论是 killkill -9还是kill -15,一般处于这种状态可能是进程 I/O的时候出问题了。

    kill 命令的掌握

    kill命令用来删除执行中的程序或工作。kill可将指定的信息送至程序。预设的信息为SIGTERM(15),可将指定程序终止。若仍无法终止该程序,可使用SIGKILL(9)信息尝试强制删除程序。程序或工作的编号可利用ps指令或job指令查看。

    语法
    kill(选项)(参数)

    -a:------------------------------当处理当前进程时,不限制命令名和进程号的对应关系;
    -l <信息编号>:---------------若不加<信息编号>选项,则-l参数会列出全部的信息名称;
    -p:------------------------------指定kill 命令只打印相关进程的进程号,而不发送任何信号;
    -s <信息名称或编号>:------指定要送出的信息;
    -u:---------------------------------指定用户

    相关文章

      网友评论

          本文标题:linux进程管理

          本文链接:https://www.haomeiwen.com/subject/nbdmqftx.html