资讯专栏INFORMATION COLUMN

Linux 命令 top 拆解

wayneli / 1541人阅读

摘要:命令是下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况。任务信息僵尸进程表示已经终止,但仍然保留一些信息的进程。中没有固定大小,根据使用情况自动增加或删除。交互式使用命令显示系统实时状态,支持交互操作。

top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况。

一、内容介绍

top 命令运行图:

1. 第一行——基本信息

load average:

  load average 表示系统负载均值,使用 top 或 uptime 可以查看到负载均值的信息,三个数值分表表示 1分钟内 、5分钟内 、 15分钟内的系统负载均值,要理解这三个数值的含义,首先要了解系统的“核数”

系统的核数 = CPU1 x CPU1的核数 + CPU2 x CPU2的核数 + CPUn x CPUn的核数 + ……

  更清楚的讲,在Linux系统中输入命令grep -c "model name" /proc/cpuinfo,即可得到核数。

  回到负载均值,负载均值的饱和值等于系统的核数, 所以,根据load average观察系统负载首先要看系统中共有多少"核",单处理器单核的饱和值为 1,单处理器双核的饱和值为2,双处理器单核的饱和值也为2.
  理解负载均值的最经典的例子是把一个CPU的核当做一座单行单向桥,多核即为多行路单向桥.如图:


  
假定,目前系统是单核系统,根据上面的描述,它的负载饱和值为1.这种条件下,各种数值的含义如下:

0.00 表示桥上没有任何车流,非常畅通

0.50 表示桥上有最高承载量一半的车流,也比较流畅.

1.00 表示桥上已经达到了最大承载量,如果再有车来,可能就要稍等才能上桥了,这种情况下,车速都会很慢,往往都会造成负载均值继续上升.

1.70 表示桥已经达到最大负载,且还有相对于桥最大负载70%的车辆等待上桥,这个时候的系统,已经要不堪重负了.

在实际应用中,重点关注5分钟,15分钟的负载均值,当达到0.7时,就需要调查原因了。

2. 任务信息

僵尸进程:表示已经终止,但仍然保留一些信息的进程。其等待父进程调用wait(),就可以从内存中完全移除。 将是进程无法使用 kill 清理。如果要手动清理僵尸进程,需要找到其父进程,kill掉父进程后,LInux的 init 进程将接管该僵尸进程(linux中所有的子进程都需要有父进程,当父进程被kill后,其所有子进程将过继给init进程),init进程隔一段时间去调用wait(),来清除僵尸进程。

3. CPU使用情况

4. 物理内存使用情况

buff/cache:

buffers 和 cache 都是内存中存放的数据,不同的是,buffers 存放的是准备写入磁盘的数据,而 cache 存放的是从磁盘中读取的数据
在Linux系统中,有一个守护进程(daemon)会定期把buffers中的数据写入的磁盘,也可以使用 sync 命令手动把buffers中的数据写入磁盘。使用buffers可以把分散的 I/O 操作集中起来,减少了磁盘寻道的时间和磁盘碎片。
cache是Linux把读取频率高的数据,放到内存中,减少I/O。Linux中cache没有固定大小,根据使用情况自动增加或删除。

# 手动把buffers写入硬盘并清空cache
sync && echo 3 > /proc/sys/vm/drop_caches

5. 交换区使用情况

Swap(内存交换区):

  是硬盘上的一块空间。在内存不足的情况下,操作系统把内存中不用的数据存到硬盘的交换区,腾出内存来让别的程序运行。因此,开启swap会一定程度的引起 I/O 性能下降(阿里服务器默认不开)。

6. 进程详细信息

二、灵活使用top

1. 命令行式使用

-b:以批处理模式操作 这种方式可以把top输出的内容以可读的形式写入文件top -b >> top.txt
-c:显示完整的命令行(COMMAND),想查看进程执行的具体位置时,非常有用
-d:屏幕刷新间隔时间 top -d 1:表示每隔一秒刷新一次
-s:使用保密模式
-S:指定累积模式
-i:不显示任何闲置或者僵死进程
-u<用户名>:指定用户名
-p<进程号>:指定进程
-n<次数>:指定循环显示的次数,到了次数自己退出。

2. 交互式使用

top命令显示系统实时状态,支持交互操作。执行top命令,显示系统状态界面(同时也是交互界面),输入交互命令:

1:查看CPU每个核的使用情况
h:显示帮助画面,给出一些简短的命令总结说明
k:终止一个进程
i:忽略闲置和僵死进程,这是一个开关式命令
q:退出程序
r:重新安排一个进程的优先级别
S:切换到累计模式
s:改变两次刷新之间的延迟时间(单位为s),如果有小数,就换算成ms。输入0值则系统将不断刷新,默认值是5s
l:切换显示平均负载和启动时间信息
m:切换显示内存信息
t:切换显示进程和CPU状态信息
c:切换显示命令名称和完整命令行
M:根据驻留内存大小进行排序
P:根据CPU使用百分比大小进行排序
T:根据时间/累计时间进行排序
w:将当前设置写入~/.toprc文件中。

持续更新中……

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/10021.html

相关文章

  • 【程序员必备】知识点 持续更新

    TCP/IP HTTP和HTTPS有何区别? httpbin 一个简单的HTTP请求和响应服务。 TCP的三次握手与四次挥手 通俗易懂版,详细版本 MySQL CHAR和VARCHAR存取的差别 《高性能MySQL》笔记 - MySQL 锁的基本类型 MySQL中的锁之一:锁的必要性及分类 MySQL中的锁之二:行锁、页锁、表锁 MySQL Like与Regexp的区别 数据结构 数...

    hellowoody 评论0 收藏0
  • 【程序员必备】知识点 持续更新

    TCP/IP HTTP和HTTPS有何区别? httpbin 一个简单的HTTP请求和响应服务。 TCP的三次握手与四次挥手 通俗易懂版,详细版本 MySQL CHAR和VARCHAR存取的差别 《高性能MySQL》笔记 - MySQL 锁的基本类型 MySQL中的锁之一:锁的必要性及分类 MySQL中的锁之二:行锁、页锁、表锁 MySQL Like与Regexp的区别 数据结构 数...

    jerryloveemily 评论0 收藏0
  • 【程序员必备】知识点 持续更新

    TCP/IP HTTP和HTTPS有何区别? httpbin 一个简单的HTTP请求和响应服务。 TCP的三次握手与四次挥手 通俗易懂版,详细版本 MySQL CHAR和VARCHAR存取的差别 《高性能MySQL》笔记 - MySQL 锁的基本类型 MySQL中的锁之一:锁的必要性及分类 MySQL中的锁之二:行锁、页锁、表锁 MySQL Like与Regexp的区别 数据结构 数...

    zhjx922 评论0 收藏0
  • linux反弹shell命令解析

    摘要:下常用的文件描述符是标准输入代码为,使用或标准输出代码为,使用或标准错误输出代码为,使用或。它相当于这个就是连接到的端口这个在百度上查了半天也没搞懂,只能去研究文档其实前面个命令组合在一起很好理解,就是把这个下的所有输出都发送到。 今天在看spark stream的sample样例的时候看到linux的万金油命令nc。搜索相关的内容突然发现一个很好玩的用处就是反弹shell.下面我们就...

    sunsmell 评论0 收藏0
  • Google新技术:Instant App全拆解(3)——着手

    摘要:系统环境要求开发不是在所有的集成开发环境都可以进行的。这里注意,的架构方式不能为的方式,绝对不能真机的准备工作运行于及以上的系统手机厂商亲儿子三星服务框架已安装在手机上。 作者:Darkbug原文标题:Google新技术:Instant App全拆解(3)——着手原文链接:https://segmentfault.com/a/11...首发地址:http://www.doncc.org...

    CNZPH 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<