前言

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

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

top命令第一行信息解释

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

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

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

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

注意最后一行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系统中进程的状态图转换如下:

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

top命令第三行信息解释

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

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

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

linux top 历史,阿里工程师眼中的linux top命令相关推荐

  1. 第1章 linux的历史演绎

    第1章 linux的历史演绎 第1章 linux的历史演绎 本章前言 首先,强烈建议你看看本书序.里面涉及到我的一个"软件使用度"的概念.很多人对于书的前言或序不感兴趣.笔者个人观 ...

  2. 浅谈Linux系统运维工程师必备技能

    一.什么是运维工程师 相信读者们必定听说过linux,也听说过运维工程师.那么运维工程师是个什么概念呢? 百度百科上的官方解释如下: 运维工程师(Operations)在国内又称为运维开发工程师(De ...

  3. 关于SDN的未来,Linux基金会专访阿里云网络大神

    摘要: 近日,大家熟知的国际开源组织Linux基金会与阿里云进行了一次访谈.专访了阿里云网络团队掌门人江鹤.江鹤执掌阿里云网络产品线,并负责阿里集团网络虚拟化产品的研发管理工作.在软件定义网络(SDN ...

  4. 零基础转行Linux云计算运维工程师获得20万年薪的超级学习技巧

    云计算概念一旦产生便一发不可收拾,成为移动互联网时代最为火热的行业之一.国内各大互联网公司例如阿里.腾讯.百度.网易等纷纷推出自己的云计算产品,3月10日,腾讯云0.01元投标时间更是让云计算在普罗大 ...

  5. Linux ubuntu 切换阿里更新源

    2019独角兽企业重金招聘Python工程师标准>>> Linux ubuntu 切换阿里更新源 查看codename 首先查看自己的ubuntu系统的codename,直接导致你更 ...

  6. linux运维工程师命令,Linux运维工程师的常用Linux命令汇总

    今天小编要跟大家分享的文章是关于Linux运维工程师的常用Linux命令汇总.作为运维人员,这些常用命令不得不会,掌握这些命令,工作上会事半功倍,提供工作效率.下面来和小编一起看一看吧! 一.文件和目 ...

  7. Linux的历史背景和基本指令

    众所周知,Linux和大家所熟悉的Windows一样,也是一款操作系统,不同的更多是在于Windows是闭源的,而Linux是开源的.现代生活中的比如飞机的控制系统.银行的系统.手机的系统等等,都和L ...

  8. Linux的历史----Linux内核剖析(一)

    Unix操作系统 Unix的由来 汤普逊和里奇最早是在贝尔实验室开发Unix的,此后的10年,Unix在学术机构和大型企业中得到了广泛的应用,当时的UNIX拥有者AT&T公司以低廉甚至免费的许 ...

  9. 总结如何从Linux开发工程师到Linux后台开发工程师再到Linux高级互联网架构师

    前言: 小编也是从事c方面10多年的工作经验.今天跟大家分享一下我总结出来的一系列 C/C Linux后台服务器开发的学习路线.从Linux开发工程师-Linux后台开发工程师-Linux高级互联网架 ...

最新文章

  1. SpringMVC 学习系列 (3) 之 URL请求到Action的映射规则
  2. 4.2 路由算法与路由协议概述
  3. php判断单向链表中有没有环,python判断链表是否有环的实例代码
  4. MATLAB浮点数与十六进制(浮点数)转换
  5. RequestBody注解
  6. typecho模板ajax,typecho ajax登陆
  7. VB 文件编码互换模块(支持 Ansi,UTF-8,Unicode(little endian),Unicode big endian)
  8. EDUCoder编程练习题解(字符数组)
  9. 计算机设计大赛西北地区赛,我校学生在中国大学生计算机设计大赛西北地区赛中获佳绩...
  10. Codeforces Round #184 (Div. 2)
  11. 获取网页中的验证码图片
  12. 求一个数因数个数c语言,【代码】求一个数的因数和、求优化、顺便也供新人参考算法...
  13. 小程序 房租水电费记录管理_智慧物业管理小程序怎么开发?
  14. 工作流任务的权限问题
  15. 鼠标模拟器,减轻你的重复操作!
  16. 列出5个python标准库_5个常用 Python 标准库
  17. 冰点还原无法修改计算机时间,系统还原后无法更改系统时间?这个方法必须会...
  18. 计算机毕业设计-springboot协同办公管理系统-公文流转系统代码设计-多人协同办公讨论管理系统
  19. matlab怎么对语音信号处理,语音信号处理MATLAB程序
  20. 软件测试 | 测试方案怎么写

热门文章

  1. UNICODE转多字节
  2. Selenium实例2-截图爬取漫画
  3. 解决win下安装wordcloud出错问题
  4. 数字图像处理实验(13):PROJECT 05-04,Parametric Wiener Filter
  5. 展示动图_DNF:多GIF动图展示,暗夜使者个性武器幻化推荐
  6. producer send源码_Kafka源码深度剖析系列(七)——Producer核心流程初探
  7. Petalinux 2017.4安装教程
  8. java中String和char的区别
  9. hadoop rebalance
  10. strong、copy和mutableCopy详解