top查看CPU运行状态

$ top 
top - 17:15:58 up 33 days,  4:53,  3 users,  load average: 2.16, 1.75, 1.46
Tasks:  76 total,   3 running,  73 sleeping,   0 stopped,   0 zombie
%Cpu(s): 99.5 us,  0.5 sy,  0.0 ni,  0.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
KiB Mem :  1883724 total,    53948 free,   794396 used,  1035380 buff/cache
KiB Swap:        0 total,        0 free,        0 used.   916476 avail Mem

  PID USER      PR  NI    VIRT    RES    SHR S %CPU %MEM     TIME+ COMMAND
21207 root      20   0  859688 703220   1124 S 99.2 37.3  70:41.21 bwa
 5543 root      10 -10  127472   7616   4408 S  0.6  0.4 395:08.35 AliYunDun
 5478 root      10 -10   32716   2904   1244 S  0.1  0.2  10:16.20 AliYunDunUpdate
21640 root      20   0       0      0      0 R  0.1  0.0   0:00.03 kworker/0:2

top结果解读

  • 第一行:系统状况
top - 17:15:58    # 当前系统时间
up 33 days, 4:53    # 系统已经运行了这么长时间(在这期间没有重启过)
3 users    # 当前有2个用户登录系统
load average: 2.16, 1.75, 1.46    # 分别是1分钟、5分钟、15分钟的负载情况

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

  • 第二行:运行进程统计
Tasks:  76 total,   # 系统现在共有76个进程,
3 running,  # 其中处于运行中的有3个,
73 sleeping,   # 73个在休眠,
0 stopped,   # stoped状态的有0个,
0 zombie    # zombie(僵尸)状态的有0个

第三行:cpu状态

%Cpu(s): 99.5 us,  # 用户空间占用CPU的百分比。
0.5 sy,  # 内核空间占用CPU的百分比。
0.0 ni,  # 改变过优先级的进程占用CPU的百分比。
0.0 id,  # 空闲CPU百分比。
0.0 wa,  # IO等待占用CPU的百分比。
0.0 hi,  # 硬中断(Hardware IRQ)占用CPU的百分比。
0.0 si,  # 软中断(Software Interrupts)占用CPU的百分比
0.0 st

Linux CPU的使用比率和windows概念不同
用户空间
内核空间

  • 第四行:内存状态
KiB Mem :  # 内存状态
1883724 total,    # 物理内存总量(2GB)
53948 free,   # 空闲内存总量
794396 used,  # 使用中的内存总量
1035380 buff/cache    # 缓存的内存量

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

  • 第五行:swap交换分区
KiB Swap:        
0 total,   # 交换区总量
0 free,        # 空闲交换区总量
0 used.   # 使用的交换区总量
916476 avail Mem

注:不能用windows的内存概念理解linux系统。

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

  • 第六行:空行

  • 第七行以下:各进程(任务)的状态监控

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

提炼自龟仙人的博客

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • SWAP/swappiness/kswapd原理,swap分区优先级的妙用 概述 本文讨论的swap基于Linux...
    xywzhen阅读 5,299评论 1 5
  • 在系统维护的过程中,随时可能有需要查看 CPU 使用率,并根据相应信息分析系统状况的需要。在 CentOS 中,可...
    yichen_china阅读 7,015评论 0 1
  • 一、Linux查看物理CPU个数、核数、逻辑CPU个数 # 总核数 = 物理CPU个数 X 每颗物理CPU的核数 ...
    air_b10f阅读 4,924评论 0 0
  • top命令经常用来监控linux的系统状况,比如cpu、内存的使用,程序员基本都知道这个命令,但比较奇怪的是能用好...
    bailongxian阅读 1,001评论 0 4
  • 1、进程简介 linux上进程有5种状态 运行(正在运行或在运行队列中等待) 中断(休眠中,受阻,在等待某个条件的...
    不穿格子衫的程序猿阅读 2,603评论 0 0