zoukankan      html  css  js  c++  java
  • Linux之top 监视系统任务的工具

    top 监视系统任务的工具;

    ps 相比,top是动态监视系统任务的工具,top 输出的结果是连续的;


     top 命令用法及参数;

    top 调用方法:

    top 选择参数

    参数:

    -b  以批量模式运行,但不能接受命令行输入;
    -c 显示命令行,而不仅仅是命令名;
    -d N  显示两次刷新时间的间隔,比如 -d 5,表示两次刷新间隔为5秒;
    -i 禁止显示空闲进程或僵尸进程;
    -n NUM  显示更新次数,然后退出。比如 -n 5,表示top更新5次数据就退出;
    -p PID 仅监视指定进程的ID;PID是一个数值;
    -q  不经任何延时就刷新;
    -s  安全模式运行,禁用一些效互指令;
    -S 累积模式,输出每个进程的总的CPU时间,包括已死的子进程;


    交互式命令键位:

    space  立即更新;
    c 切换到命令名显示,或显示整个命令(包括参数);
    f,F 增加显示字段,或删除显示字段;
    h,? 显示有关安全模式及累积模式的帮助信息;
    k 提示输入要杀死的进程ID,目的是用来杀死该进程(默人信号为15)
    i 禁止空闲进程和僵尸进程;
    l 切换到显法负载平均值和正常运行的时间等信息;
    m 切换到内存信息,并以内存占用大小排序;
    n  提示显示的进程数,比如输入3,就在整屏上显示3个进程;
    o,O 改变显示字段的顺序;
    r 把renice 应用到一个进程,提示输入PID和renice的值;
    s 改变两次刷新时间间隔,以秒为单位;
    t 切换到显示进程和CPU状态的信息;
    A 按进程生命大小进行排序,最新进程显示在最前;
    M 按内存占用大小排序,由大到小;
    N 以进程ID大小排序,由大到小;
    P 按CPU占用情况排序,由大到小
    S 切换到累积时间模式;
    T  按时间/累积时间对任务排序;
    W 把当前的配置写到~/.toprc中;


    top 应用举例;

    [root@localhost ~]# top

    然后根据前面所说交互命令按个尝试一下就明白了,比如按M,就按内存占用大小排序

    当然您可以把top的输出传到一个文件中;

    [root@localhost ~]# top > mytop.txt

    然后我们就可以查看mytop文件,以慢慢的分析系统进程状态;

     

    此图是刚进入top的基本视图,我们来结合这个视图讲解各个数据的含义。

    第一行:
    10:01:23 — 当前系统时间
    126 days, 14:29 — 系统已经运行了12614小时29分钟(在这期间没有重启过)
    2 users — 当前有2个用户登录系统
    load average: 1.15, 1.42, 1.44 — load average后面的三个数分别是1分钟、5分钟、15分钟的负载情况。

    load average数据是每隔5秒钟检查一次活跃的进程数,然后按特定算法计算出的数值。如果这个数除以逻辑CPU的数量,结果高于5的时候就表明系统在超负荷运转了。

    第二行:
    Tasks — 任务(进程),系统现在共有183个进程,其中处于运行中的有1个,182个在休眠(sleep),stoped状态的有0个,zombie状态(僵尸)的有0个。

    第三行:cpu状态
    6.7% us — 用户空间占用CPU的百分比。
    0.4% sy — 内核空间占用CPU的百分比。
    0.0% ni — 改变过优先级的进程占用CPU的百分比
    92.9% id — 空闲CPU百分比
    0.0% wa — IO等待占用CPU的百分比
    0.0% hi — 硬中断(Hardware IRQ)占用CPU的百分比
    0.0% si — 软中断(Software Interrupts)占用CPU的百分比

    在这里CPU的使用比率和windows概念不同,如果你不理解用户空间和内核空间,需要充充电了。

    第四行:内存状态
    8306544k total — 物理内存总量(8GB
    7775876k used — 使用中的内存总量(7.7GB
    530668k free — 空闲内存总量(530M
    79236k buffers — 缓存的内存量 (79M

    第五行:swap交换分区
    2031608k total — 交换区总量(2GB
    2556k used — 使用的交换区总量(2.5M
    2029052k free — 空闲交换区总量(2GB
    4231276k cached — 缓冲的交换区总量(4GB

    这里要说明的是不能用windows的内存概念理解这些数据,如果按windows的方式此台服务器危矣8G的内存总量只剩下530M的可用内存。Linux的内存管理有其特殊性,复杂点需要一本书来说明,这里只是简单说点和我们传统概念(windows)的不同。

    第四行中使用中的内存总量(used)指的是现在系统内核控制的内存数,空闲内存总量(free)是内核还未纳入其管控范围的数量。纳入内核管理的内存不见得都在使用中,还包括过去使用过的现在可以被重复利用的内存,内核并不把这些可被重新使用的内存交还到free中去,因此在linuxfree内存会越来越少,但不用为此担心。

    如果出于习惯去计算可用内存数,这里有个近似的计算公式:第四行的free + 第四行的buffers + 第五行的cached,按这个公式此台服务器的可用内存:530668+79236+4231276 = 4.7GB

    对于内存监控,在top里我们要时刻监控第五行swap交换分区的used,如果这个数值在不断的变化,说明内核在不断进行内存和swap的数据交换,这是真正的内存不够用了。

    第六行是空行

    第七行以下:各进程(任务)的状态监控
    PID — 进程id
    USER — 进程所有者
    PR — 进程优先级
    NI — nice值。负值表示高优先级,正值表示低优先级
    VIRT — 进程使用的虚拟内存总量,单位kbVIRT=SWAP+RES
    RES — 进程使用的、未被换出的物理内存大小,单位kbRES=CODE+DATA
    SHR — 共享内存大小,单位kb
    S — 进程状态。D=不可中断的睡眠状态 R=运行 S=睡眠 T=跟踪/停止 Z=僵尸进程
    %CPU — 上次更新到现在的CPU时间占用百分比
    %MEM — 进程使用的物理内存百分比
    TIME+ — 进程使用的CPU时间总计,单位1/100
    COMMAND — 进程名称(命令名/命令行)

     

  • 相关阅读:
    OutputCache 缓存key的创建 CreateOutputCachedItemKey
    Asp.net Web Api源码调试
    asp.net mvc源码分析DefaultModelBinder 自定义的普通数据类型的绑定和验证
    Asp.net web Api源码分析HttpParameterBinding
    Asp.net web Api源码分析HttpRequestMessage的创建
    asp.net mvc源码分析ActionResult篇 RazorView.RenderView
    Asp.Net MVC 项目预编译 View
    Asp.net Web.config文件读取路径你真的清楚吗?
    asp.net 动态创建TextBox控件 如何加载状态信息
    asp.net mvc源码分析BeginForm方法 和ClientValidationEnabled 属性
  • 原文地址:https://www.cnblogs.com/afeige/p/10878593.html
Copyright © 2011-2022 走看看