阿里工程师眼中的linux top命令

栏目: IT技术 · 发布时间: 3年前

内容简介:linux系统里面的top命令,可以说是排查线上问题的神器,也是linux系统里面最常用的命令之一,但大多数使用人员,仅仅停留在使用top命令看cpu的使用率,而很少关注其他的展示信息,大大浪费了这个命令的能力,不夸张的讲,这个小小的命令几乎涵盖了整个linux内核的监控面,是每一位优秀的工程师都要掌握的知识。今天我们就庖丁解牛的对这个命令分析一番:

前言

linux系统里面的top命令,可以说是排查线上问题的神器,也是 linux 系统里面最常用的命令之一,但大多数使用人员,仅仅停留在使用top命令看cpu的使用率,而很少关注其他的展示信息,大大浪费了这个命令的能力,不夸张的讲,这个小小的命令几乎涵盖了整个linux内核的监控面,是每一位优秀的工程师都要掌握的知识。

今天我们就庖丁解牛的对这个命令分析一番:

阿里工程师眼中的linux top命令

top命令第一行信息解释

(友情提示,可左右滑动)

第一行的数据,通过linux里面的uptime命令,也能拿到一模一样的信息,这里的数据分为四列:

第一列:当前系统时间 第二列:该机器从启动到现在的运行时间,比如上图里面运行了213天,15小时27分 第三列:目前系统登录的用户数,可以看到是1,这个信息同样的通过who命令也能在linux系统中获取

阿里工程师眼中的linux top命令

其他还有w命令,能看到更详细的信息:

阿里工程师眼中的linux top命令

注意最后一行what代表当前用户正在执行的命令,如果我们想看历史命令,就用history命令,此外还可以通过vim ~/.bash_history 来获取用户的操作命令历史

第四列:表示当前系统的平均load值,从左到右表示1分钟,5分钟,15分钟。

load average表示cpu处理队列的长度,这样也比较容易理解,单核cpu的load最大负载为1,表示一个时刻cpu处理一个任务,load是可以大于1的,这个时候机器已经超负载运行了,整体表现响应慢,卡顿等现象。

下面的命令可以用来查询cpu相关的信息:

查看物理CPU的个数:

cat /proc/cpuinfo | grep "physical id" | sort | uniq | wc -l

查看单个CPU是几核的:

cat /proc/cpuinfo | grep "cpu cores" | uniq

查看逻辑CPU的个数:

cat /proc/cpuinfo | grep "processor" | wc -l

一般情况下,cpu物理个数 * 核数 是等于 逻辑cpu的个数,如果不相等说明cpu支持超线程。也就是说,如果物理cpu个数 * 核数 = 8,那么8核cpu的cpu的load最大就是8,举个例子,现在有8个卫生间,但有16个人需要用,那么同时只能有8个人能用,另外8个人需要等待,这个时候表现在机器上系统的Load显示为16,代表有8个任务在处理,8个任务在等待处理,已经超出cpu负载运行了,所以观察cpu为800%或者大于的时候,不用大惊小怪,这是正常现象。在linux里面,top命令按数字键1,是可以看到所有的cpu核的负载情况。

top命令第二行信息解释

第二行表示系统此时的进程情况:total:代表目前系统所有的进程数 running:代表目前正在运行的进程数 sleeping:代表目前sleep的进程数 stopped:代表目前中断的进程数 zombie:代表目前存在的僵尸进程数 linux系统中进程的状态图转换如下:

阿里工程师眼中的linux top命令

如果系统存在过多的中断进程或者僵尸进程,需要考虑系统是否存在调整过进程的优先级或者进程设计是否存在问题。

top命令第三行信息解释

在linux中,使用man top命令,在帮助文档里面,能够看到下面,关于cpu状态字段的描述:

第一个us代表的是用户空间进程占用cpu的时间百分比,sy代表的是系统空间进程(kernel)占用cpu时间的百分比:

阿里工程师眼中的linux top命令

linux系统抽象分为三部分,最下层是硬件层,中间是系统空间,上层为用户空间。进程在执行用户自己的代码时,则其处于用户态,此时耗费的cpu统计为us,而相反一个进程执行系统而陷入内核代码执行时,此时处于内核运行态,耗费的cpu为sy。


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Java5.0Tiger程序高手秘笈

Java5.0Tiger程序高手秘笈

BrettMclaughlin / 东南大学出版社 / 2005-10 / 28.00元

代号为 “Tiger”的下一个 Java 版本,不只是个小改动版。在语言核心中有超过 100 项以上的变动,同时有大量的对 library 与 API 所做的加强,让开发者取得许多新的功能、工具与技术。但在如此多的变化下,应该从何处开始着手?也许可以从既长又无趣的语言规范说明书开始看起;或等待最少 500 页的概念与理论巨著出版;甚至还可以直接把玩新的 JDK 看看能够有什么发现;或者借由《Jav......一起来看看 《Java5.0Tiger程序高手秘笈》 这本书的介绍吧!

在线进制转换器
在线进制转换器

各进制数互转换器

随机密码生成器
随机密码生成器

多种字符组合密码

HTML 编码/解码
HTML 编码/解码

HTML 编码/解码