10 分钟带你了解 Linux 系统中的 Top 命令
前言
作为一个测试工程师,可能我们并不需要像运维人员那样时时刻刻去关注系统的运行情况,但是对于一些查看系统运行情况,以及性能情况的命令,我们还是需要了解并掌握的,本文就来给大家介绍一下 Linux 系统重非常重要的top
命令。
获取更多技术资料,请点击!
什么是top
命令
在 Linux 系统中,top
命令是一个非常实用的工具,用于动态监视系统的资源使用情况。它提供了一个交互式界面,展示了各种进程的 CPU、内存、以及其他资源的使用情况,以及系统的整体负载情况。
top
命令使用
启动 Top 命令: 在终端中输入
top
并按下回车键即可启动 Top 命令。查看进程信息: 默认情况下,Top 命令会显示系统中所有正在运行的进程,以及它们的 CPU 使用率、内存使用率等信息。你可以通过按下键盘上的
1
键来查看每个 CPU 核心的使用情况。排序进程: Top 命令默认按照 CPU 使用率进行排序。你可以按下
P
键按照 CPU 使用率排序,按下M
键按照内存使用率排序,按下T
键按照运行时间排序等。结束进程: 如果你需要结束某个进程,可以按下
k
键,然后输入要结束的进程的 PID(进程 ID)并按下回车键。改变刷新频率: 默认情况下,Top 每隔 3 秒刷新一次信息。你可以按下
d
键来改变刷新频率,然后输入你希望的刷新时间间隔(单位是秒)。退出 Top: 按下
q
键即可退出 Top 命令。
top
命令输出解析
我们执行top
命令后,会出现如下结果:
top
命令输出了很多参数,真正的服务器负载情况我们要综合其他参数一起看,运行结果可以分为两部分:
第一部分是前 5 行,是系统整体的统计信息;
第二部分是第 8 行开始的进程信息,我们从上往下逐行依次进行说明。
系统整体的统计信息
第一行:
top
:当前时间up
:机器运行了多长时间users
:当前登录用户数load average
:系统负载,即任务队列的平均长度。三个数值分别为 1 分钟、5 分钟、15 分钟前到现在的平均值。
第二行:
Tasks
:当前有多少进程running
:正在运行的进程数sleeping
:正在休眠的进程数stopped
:停止的进程数zombie
:僵尸进程数
当前正在运行的进程越对,系统压力就会越大。
第三行:
us
:用户空间占 CPU 的百分比(像 shell 程序、各种语言的编译器、各种应用、web 服务器和各种桌面应用都算是运行在用户地址空间的进程,这些程序如果不是处于 idle 状态,那么绝大多数的 CPU 时间都是运行在用户态)sy
: 内核空间占 CPU 的百分比(所有进程要使用的系统资源都是由 Linux 内核处理的,对于操作系统的设计来说,消耗在内核态的时间应该是越少越好,在实践中有一类典型的情况会使 sy 变大,那就是大量的 IO 操作,因此在调查 IO 相关的问题时需要着重关注它)ni
:用户进程空间改变过优先级(ni 是 nice 的缩写,可以通过 nice 值调整进程用户态的优先级,这里显示的 ni 表示调整过 nice 值的进程消耗掉的 CPU 时间,如果系统中没有进程被调整过 nice 值,那么 ni 就显示为 0)id
: 空闲 CPU 占用率wa
: 等待输入输出的 CPU 时间百分比(和 CPU 的处理速度相比,磁盘 IO 操作是非常慢的,有很多这样的操作,比如,CPU 在启动一个磁盘读写操作后,需要等待磁盘读写操作的结果。在磁盘读写操作完成前,CPU 只能处于空闲状态。Linux 系统在计算系统平均负载时会把 CPU 等待 IO 操作的时间也计算进去,所以在我们看到系统平均负载过高时,可以通过 wa 来判断系统的性能瓶颈是不是过多的 IO 操作造成的)hi
: 硬中断占用百分比(硬中断是硬盘、网卡等硬件设备发送给 CPU 的中断消息,当 CPU 收到中断消息后需要进行适当的处理(消耗 CPU 时间)。)si
:软中断占用百分比(软中断是由程序发出的中断,最终也会执行相应的处理程序,消耗 CPU 时间)st
:steal time
第四行:
total
:物理内存总量free
:空闲内存量used
:使用的内存量buffer/cache
:用作内核缓存的内存量
第五行:
total
:交换区内存总量free
:空闲交换区总量used
:使用的交换区总量buffer/cache
:缓冲的交换区总量
第四第五行分别是内存信息和 swap 信息,所有程序的运行都是在内存中进行的,所以内存的性能对与服务器来说非常重要。不过当内存的 free 变少的时候,其实我们并不需要太紧张。真正需要看的是 Swap 中的 used 信息。Swap 分区是由硬盘提供的交换区,当物理内存不够用的时候,操作系统才会把暂时不用的数据放到 Swap 中。
进程信息
top
命令使用
top 命令的格式为:
常用参数:
-d
:指定每两次屏幕信息刷新之间的时间间隔,如希望每秒刷新一次,则使用:top -d 1
-p
: 通过指定 PID 来仅仅监控某个进程的状态-S
: 指定累计模式-s
: 使 top 命令在安全模式中运行。这将去除交互命令所带来的潜在危险-i
: 使 top 不显示任何闲置或者僵死的进程-c
: 显示整个命令行而不只是显示命令名
总结
Top 命令是 Linux 系统中一个非常强大的工具,它可以帮助你实时监视系统的资源使用情况,识别和解决系统性能问题。通过本文介绍的基本使用方法,你可以更好地利用 Top 命令来管理你的 Linux 系统。
推荐学习
【霍格沃兹测试开发】7 天软件测试快速入门 带你从零基础/ 转行/ 小白/ 就业/ 测试用例设计实战
【霍格沃兹测试开发】最新版!Web 自动化测试从入门到精通/ 电子商务产品实战/Selenium (上集)
【霍格沃兹测试开发】最新版!Web 自动化测试从入门到精通/ 电子商务产品实战/Selenium (下集)
【霍格沃兹测试开发】明星讲师精心打造最新Python 教程软件测试开发从业者必学(上集)
【霍格沃兹测试开发】明星讲师精心打造最新Python 教程软件测试开发从业者必学(下集)
【霍格沃兹测试开发】精品课合集/ 自动化测试/ 性能测试/ 精准测试/ 测试左移/ 测试右移/ 人工智能测试
【霍格沃兹测试开发】腾讯/ 百度/ 阿里/ 字节测试专家技术沙龙分享合集/ 精准化测试/ 流量回放/Diff
【霍格沃兹测试开发】Pytest 用例结构/ 编写规范 / 免费分享
【霍格沃兹测试开发】JMeter 实时性能监控平台/ 数据分析展示系统Grafana/Docker 安装
【霍格沃兹测试开发】接口自动化测试的场景有哪些?为什么要做接口自动化测试?如何一键生成测试报告?
【霍格沃兹测试开发】面试技巧指导/ 测试开发能力评级/1V1 模拟面试实战/ 冲刺年薪百万!
【霍格沃兹测试开发】腾讯软件测试能力评级标准/ 要评级表格的联系我
评论