前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Linux TOP 命令详解

Linux TOP 命令详解

作者头像
付威
发布2021-01-28 12:10:43
8.6K0
发布2021-01-28 12:10:43
举报

TOP 命令的含义

TOP 命令是常用的 Linux 性能监控的命令,执行后,界面如下:

image-20200920135205175
image-20200920135205175
第一行
代码语言:javascript
复制
top - 14:09:04 up 3 days, 21:20,  0 users,  load average: 0.52, 0.58, 0.59

当前时间(date)、系统已运行时间(last reboot)、当前登录用户的数量(who )、最近5、10、15分钟内的平均负载

CPU load的含义

load average: 0.52, 0.58, 0.59 代表 1min 5min 15min的 CPU 的平均负载

一般超过 1 代表拥堵,正常控制在 0.7 以下。如果是多核心,需要除于核心数。

这个负载的含义是什么呢? 0.52 代表是什么意思?

从当前时间到过去的前一分钟,平均有 0.59 个进程(线程)在等待 CPU 的处理。简单的说,就是有(1-0.59)=0.41 的 CPU 在被闲置。

如果当前值为 2 ,代表当前有 2 倍的 CPU 处理能力的进程(线程)在等待资源,并不代表 CPU 的使用率很高

为了更好的理解 load 的含义,我们假设有 4 个任务等待 CPU 处理,每一个任务需要的时间片是 30s.如下图:

image-20200920145632038
image-20200920145632038

如果 1min内只有 Task1 让 CPU 处理了,则 CPU Load 是0.5, CPU 的使用率是 60%

如果 1min内 Task1 Task2 都需要 CPU 处理,则 CPU Load 是 1 ,CPU 的使用率是 70%

如果 1min 内 4 个任务都需要 CPU 处理,则 CPU Load 是 2 CPU 的使用率 55%。

所以,如果碰到,下面这 4 种情况,就可以轻松的定位服务器的瓶颈。

image-20200920151945164
image-20200920151945164
第二行
代码语言:javascript
复制
Tasks:  10 total,   1 running,   9 sleeping,   0 stopped,   0 zombie

任务的总数、运行中(running)的任务、休眠(sleeping)中的任务(等待处理的进程,需要一个时间完成后才能唤醒)、停止(stopped)的任务(等待被继续处理的信号)、僵尸状态(zombie)的任务

第三行
代码语言:javascript
复制
%Cpu(s):  5.7 us, 34.2 sy,  0.0 ni, 60.1 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st

字段

字段释义

us

user: 运行(未调整优先级的) 用户进程的CPU时间,一般在 60% 以下

sy

system: 运行内核进程的CPU时间 sy+us < 80%

ni

niced:运行已调整优先级的用户进程的CPU时间

id

idle:空闲时间

wa

IO wait: 用于等待IO完成的CPU时间 一般 <30%

hi

处理硬件中断的CPU时间

si

处理软件中断的CPU时间

st

这个虚拟机被hypervisor偷去的CPU时间(译注:如果当前处于一个hypervisor下的vm,实际上hypervisor也是要消耗一部分CPU处理时间的)

第四行
代码语言:javascript
复制
MiB Mem :  32657.8 total,  13158.8 free,  19275.0 used,    224.0 buff/cache

全部可用内存、空闲内存、程序使用的内存、缓冲内存

第五行
代码语言:javascript
复制
MiB Swap:  15006.1 total,  12780.1 free,   2226.0 used.  13252.2 avail Mem

全部、空闲、已使用、和缓冲交换空间

后面的监控信息

字段

释义

PID

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

USER

进程所有者的实际用户名

PR

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

NI

进程的nice值(优先级)。越小的值意味着越高的优先级。负值表示高优先级,正值表示低优先级

VIRT

virtual memory usage 虚拟内存,进程使用的虚拟内存。进程使用的虚拟内存总量,单位kb。VIRT=SWAP+RES1、进程“需要的”虚拟内存大小,包括进程使用的库、代码、数据等 2、假如进程申请100m的内存,但实际只使用了10m,那么它会增长100m,而不是实际的使用量

RES

resident memory usage 常驻内存,驻留内存大小。驻留内存是任务使用的非交换物理内存大小。进程使用的、未被换出的物理内存大小,单位kb。RES=CODE+DATA1、进程当前使用的内存大小,但不包括swap out 2、包含其他进程的共享 3、如果申请100m的内存,实际使用10m,它只增长10m,与VIRT相反 4、关于库占用内存的情况,它只统计加载的库文件所占内存大小

SHR

SHR:shared memory 共享内存1、除了自身进程的共享内存,也包括其他进程的共享内存 2、虽然进程只使用了几个共享库的函数,但它包含了整个共享库的大小 3、计算某个进程所占的物理内存大小公式:RES – SHR 4、swap out后,它将会降下来

S

这个是进程的状态。它有以下不同的值:D - 不可中断的睡眠态。R – 运行态S – 睡眠态T – 被跟踪或已停止Z – 僵尸态

%CPU

自从上一次更新时到现在任务所使用的CPU时间百分比。%CPU显示的是进程占用一个核的百分比,而不是整个cpu(N核)的百分比,有时候可能大于100,那是因为该进程启用了多线程占用了多个核心,所以有时候我们看该值得时候会超过100%,但不会超过总核数*100

%MEM

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

TIME+

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

COMMAND

运行进程所使用的命令。进程名称(命令名/命令行)

交互的命令

Z: 修改字体 B:字体加粗

b: 增加选中行

1:显示和隐藏 CPU 的信息

f: 进入字段显示配置模式,使用空格键选中和未选中。

s: 设置刷新的时间

M: 根据驻留内存大小进行排序。

P : 根据CPU使用百分比大小进行排序。

H: 显示线程

c:切换显示命令名称和完整命令行。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2020-09-202,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • TOP 命令的含义
    • 第一行
      • CPU load的含义
        • 第二行
          • 第三行
            • 第四行
              • 第五行
                • 后面的监控信息
                • 交互的命令
                相关产品与服务
                应用性能监控
                应用性能监控(Application Performance Management,APM)是一款应用性能管理平台,基于实时多语言应用探针全量采集技术,为您提供分布式性能分析和故障自检能力。APM 协助您在复杂的业务系统里快速定位性能问题,降低 MTTR(平均故障恢复时间),实时了解并追踪应用性能,提升用户体验。
                领券
                问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档