zoukankan      html  css  js  c++  java
  • Linux命令之top命令

     top命令是Linux下常用的性能分析工具,能够实时(默认是3s刷新一次)的显示系统的资源使用情况,以及各种进程的资源使用情况,类似于Windows的任务管理器。

    前几行水平显示了不同系统参数的概括,接下来是进程和它们在列中的属性(top命令的顶部显示与uptime命令相似的输出。)。

    1.1 系统运行时间和平均负载:

    显示运行时间

    uptime命令:

    这些字段显示:

    第一行数据相当于uptime命令输出。00:15:48是当前时间,up 1:23是系统已经运行的时间,2users表示当前有2个用户在登录

    • 当前时间
    • 系统已运行的时间
    • 当前登录用户的数量
    • load average后面分别是1分钟平均负载,5分钟平均负载,15分钟平均负载。数据是每隔5秒钟检查一次活跃的进程数,然后根据这个数值算出来的。如果这个数除以CPU 的数目,结果高于5的时候就表明系统在超负荷运转了。如果三个值相加,除以3,再乘以100%,如果高于60%,说明系统的负担压力重。
    • 所谓负载,就是排队的任务数,所以CPU的负载,指的就是等待CPU处理的任务数。任务量越大,这个数字越高,CPU的利用率也就越高。(对应vmstat命令中的r列?---此处不确定)
    [root@anna ~]# vmstat 2
    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 127232 126128      0 695340    0    1    17     3   98   13  0  0 100  0  0
     0  0 127232 126136      0 695340    0    0     0     0 1043 1970  1  1 98  0  0
     0  0 127232 126136      0 695348    0    0     0    20  841 1539  0  1 99  0  0
     0  0 127232 126152      0 695384    0    0     0     7  503  996  0  0 99  0  0
     2  0 127232 126152      0 695388    0    0     8     0 1049 1940  0  1 99  0  0
     0  0 126976 126136      0 695408   12    0    12     2  823 1505  1  0 99  0  0
    

    可以使用'l'命令切换uptime的显示。

     平均负载

    平均负载表示的平均活跃进程数,包括正在running的进程数,准备running(就绪态)的进程数,和处于不可中断睡眠状态的进程数。如果平均负载数刚好等于CPU核数,那证明每个核都能得到很好的利用,如果平均负载数大于核数证明系统处于过载的状态,通常认为是超过核数的70%认为是严重过载,需要关注。还需结合1分钟平均负载,5分钟平均负载,15分钟平均负载看负载的趋势,如果1分钟负载比较高,5分钟和15分钟的平均负载都比较低,则说明是瞬间升高,需要观察。如果三个值都很高则需要关注下是否某个进程在疯狂消耗CPU或者有频繁的IO操作,也有可能是系统运行的进程太多,频繁的进程切换导致。比如说上面的演示环境是一台8核的centos机器(load average: 16.32, 18.75, 21.04),证明系统是长期处于过载状态在运行。

    1.2 任务:

    任务概况

     第二行显示的是任务或者进程的总结。进程可以处于不同的状态。这里显示了全部进程的数量。除此之外,还有正在运行、睡眠、停止、僵尸进程的数量(僵尸是一种进程的状态)。这些进程概括信息可以用't'切换显示。

    1.3 CPU 状态:

    CPU状态显示

    下一行显示的是CPU状态。 这里显示了不同模式下的所占CPU时间的百分比。这些不同的CPU时间表示:

    • us, user: 运行(未调整优先级的) 用户进程的CPU时间
    • sy,system: 运行内核进程的CPU时间
    • ni,niced:运行已调整优先级的用户进程的CPU时间
    • wa,IO wait: 用于等待IO完成的CPU时间
    • hi:处理硬件中断的CPU时间
    • si: 处理软件中断的CPU时间
    • st:这个虚拟机被hypervisor偷去的CPU时间(译注:如果当前处于一个hypervisor下的vm,实际上hypervisor也是要消耗一部分CPU处理时间的)。

    可以使用't'命令切换显示。

    1.4 内存使用:

    内存使用情况

    接下来两行显示内存使用率,有点像'free'命令。第一行是物理内存使用,第二行是虚拟内存使用(交换空间)。

    物理内存显示如下:全部可用内存、已使用内存、空闲内存、缓冲内存。

    相似地:交换部分显示的是:全部、已使用、空闲和缓冲交换空间。

    内存显示可以用'm'命令切换。

    1.5 字段/列:

    任务信息列

    在横向列出的系统属性和状态下面,是以列显示的进程。不同的列代表下面要解释的不同属性。

    默认上,top显示这些关于进程的属性:

    PID

    进程ID,进程的唯一标识符

    USER

    进程所有者的实际用户名。

    PR

    进程的调度优先级。这个字段的一些值是'rt'。这意味这这些进程运行在实时态。

    NI

    进程的nice值(优先级)。越小的值意味着越高的优先级。

    VIRT

    进程使用的虚拟内存。

    RES

    驻留内存大小。驻留内存是任务使用的非交换物理内存大小。

    SHR

    SHR是进程使用的共享内存。

    S

    这个是进程的状态。它有以下不同的值:

    • D - 不可中断的睡眠态。
    • R – 运行态
    • S – 睡眠态
    • T – 被跟踪或已停止
    • Z – 僵尸态

    %CPU

    进程使用的CPU占比。

    %MEM

    进程使用的可用物理内存百分比。

    TIME+

    任务启动后到现在所使用的全部CPU时间,精确到百分之一秒。

    COMMAND

    运行进程所使用的命令。

    还有许多在默认情况下不会显示的输出,它们可以显示进程的页错误、有效组和组ID和其他更多的信息。

    https://www.cnblogs.com/makelu/p/11169270.html

    https://linux.cn/article-2352-1.html

  • 相关阅读:
    SVG前戏—让你的View多姿多彩
    分享几个Android很强势的的开源框架
    终于,我还是下决心学Java后台了
    金9银10,分享几个重要的Android面试题
    django-多表操作2
    python基础-文件操作
    django-单表操作
    django-多表操作
    django-模板层基础2
    djano-模板层基础知识
  • 原文地址:https://www.cnblogs.com/annatest/p/15065977.html
Copyright © 2011-2022 走看看