使用 atop 工具监控 Linux 系统指标
atop是一款用于监控Linux系统资源与进程的工具,能够报告所有进程的活动。它以一定频率记录系统和进程的活动。当 ECS 实例出现问题时,您可以获取相应的atop日志文件进行分析。本文将介绍如何在Linux实例中安装、使用及自定义atop配置。
1、工具介绍
atop采集的数据涵盖了 CPU、内存、磁盘和网络的资源使用情况以及进程运行状态,并能够以日志文件的形式保存至磁盘。对于每个进程,系统将显示 CPU 使用率、内存增长、磁盘使用率、优先级、用户名、状态及退出码等信息。您可以通过atop配置文件自定义日志采集的频率、日志文件的存储路径以及轮转策略等参数。
2、工具安装
本步骤以 Linux 操作系统的版本是 Centos8 服务器为例,为您介绍如何安装 atop 监控工具
- 执行如下命令,安装 atop。
sudo yum install -y atop- 执行如下命令,启动 atop 服务。
sudo systemctl start atop效果图如下:

3、(可选)配置监控周期及日志保留时间
您可以参考以下步骤,以完成自定义 atop 监控周期、日志保留时间及日志存储路径的设置。有关配置文件的更多信息,可点击下方进行了解。
3.1、配置文件介绍
1、在系统中,atop 的配置文件时/etc/sysconfig/atop,默认配置文件的内容如下所示:
LOGOPTS=""
LOGINTERVAL=600
LOGGENERATIONS=28
LOGPATH=/var/log/atop有关配置文件的说明如下:
LOGOPTS:用于控制日志文件记录选项的一个重要参数,允许您自定义日志文件的保存路径、命名规则、滚动周期以及其他与日志记录相关的选项。默认为空,表示不使用任何额外选项。
LOGINTERVAL:监控周期,默认的监控周期为 600 秒。
重要
在默认配置文件中,监控周期被设定为每 600 秒一次。如需通过 atop 工具采集历史日志以追踪和定位异常问题,建议您根据自身的实际场景和需求调整默认采集频率,以便更迅速地识别和定位问题。
LOGGENERATIONS:日志保留时间,为避免
atop长时间运行占用太多磁盘空间,默认的日志保留时间为 28 天。LOGPATH:指定
atop日志文件的路径。默认值为/var/log/atop。
2、配置 atop 监控周期和日志保留时间
a.执行如下命令,打开atop配置文件
sudo vim /etc/sysconfig/atopb.按 i进入编辑模式
c.根据自身需求调整监控周期、日志保留时间及日志存储路径配置。示例中将监控周期修改为 30 秒,日志保留时间设定为 10 天,而日 志路径则维持默认设置。
LOGOPTS=""
LOGINTERVAL=30
LOGGENERATIONS=10
LOGPATH=/var/log/atop重要
- 设置较小的监控周期可以使监控时间的颗粒度更细,但同时会增加系统的 I/O 负担,并导致生成的日志文件变大。若您在生产环境中使用 atop,请根据自身需求合理设置,避免日志文件过大或日志记录占用过多 I/O 资源,从而影响实际业务的正常运行。
- 日志保留时间越长,意味着您能够查看更早时间的历史日志。然而,这也将占用更多的磁盘空间,因此请根据自身需求进行合理设置。
d.按Esc键,输入:wq,保存并退出编辑。
3、执行如下命令,重启 atop 服务。
sudo systemctl restart atop4、使用工具
使用 atop 工具进行 Linux 系统指标监控时,您需要关注常用命令及资源监控字段的含义。
常用命令介绍
打开日志文件后,您可以在交互命令模式下使用以下命令。
- g:切换回默认的综合输出视图。
- c:显示进程列完整命令行。
- m:按照进程内存使用率进行降序筛选。
- d:按照进程磁盘使用率进行降序筛选。
- a:按照进程资源综合使用率进行降序筛选。
- n:按照进程网络使用率进行降序筛选。
- t:跳转到下一个监控采集点。
- T:跳转到上一个监控采集点。
- b:指定时间点,格式为 YYYYMMDDhhmm。
资源监控字段含义介绍
下图展示了部分监控字段及其数值,具体数值会因采样周期的不同而有所变化。该图仅供参考,具体数据应以您的实际数据为准。

主要参数说明如下:
参数(行) 说明 ATOP 主机名、信息采样日期和时间点。 PRC 进程整体运行情况。
1.sys、user:分别代表进程在内核态和用户态的运行时间。
2.#proc:进程总数
3.#trun:处于 running 状态进程数
4.#tslpi:处于 sleeping interruptible 状态的进程数
5.#tslpu:处于 sleeping uninterruptible 状态的进程数
6.#zombie:僵死进程的数量。
7.#exit:atop 采样周期内退出的进程数。CPU CPU 整体的使用情况,即多核 CPU 作为一个整体 CPU 资源的使用情况。CPU 行各个字段数字相加结果为 N*100%,其中 N 为 CPU 的核数。
sys、user:CPU 在用于处理进程时,进程在内核态及用户态所占 CPU 的时间比例。
irq:CPU 用于处理中断的时间比例
idle:CPU 处在完全空闲状态的时间比例
wait:CPU 处在进程等待磁盘 IO 导致 CPU 空闲状态的时间比例CPL CPU 负载情况。
avg1、avg5 和 avg15:分别代表过去 1 分钟、5 分钟和 15 分钟内运行队列中的平均进程数量
csw:上下文切换次数。
intr:中断发生次数。MEM 内存的使用情况。
tot:物理内存总量
free:空闲内存的大小。
cache:用于页缓存的内存大小
buff:用于文件缓存的内存大小。
slab:系统内核占用的内存大小SWP 交换空间的使用情况。
tot:交换区总量
free:空闲交换空间大小PAG 虚拟内存分页情况。
swin、swout:分别代表换入和换出内存页数。DSK 磁盘使用情况,每一个磁盘设备对应一列,如果有 vdb 设备,那么将会增加一行 DSK 信息
vda:磁盘设备标识
busy:磁盘处于 busy 状态的时间比例
read、write:分别代表读、写请求的数量NET 多列 NET 展示了网络状况,包括传输层 TCP 和 UDP、IP 层以及各活动的网口信息
****i:各层或活动网口接收包大小。
****o:各层或活动网口发送包大小。
重要
当您在命令行界面运行
atop命令时,默认会进入交互命令模式,在交互命令模式下,您可以通过在键盘输入支持的命令进行数据筛选,例如,按m键切换为内存信息视图。按q退出交互命令模式。有关支持的命令列表,请参见常用命令介绍。您也可以在交互命令模式下按?键以获取更多信息。
5、查看实时系统指标
#每 5 秒查看一次系统指标
atop 5
#查看当前时间之后5分钟内(共30次,间隔10秒)的系统指标。
atop -M 10 30
#查看当前时间之后10分钟(10 次,间隔 60 秒)的系统指标,并将结果写入文件。
atop -M 60 10 > /log/atop.mem6、查看历史指标日志
atop 启动后,会默认将采集记录存放在/var/log/atop目录下的日志文件中。您可以通过执行如下命令,查看相关历史指标日志
说明
- 请使用下方示例的
atop -r相关命令查看指标日志,请勿使用文本编辑器打开 atop 日志文件。- 使用 atop 查看历史指标日志时,请确保您所指定日期的历史指标日志已存在于 atop 日志文件路径中,若文件不存在会出现
stat raw file: No such file or directory报错。
#查看当天历史指标日志。
atop -r
#查看昨天历史指标日志。
atop -r y
#查看指定日期内的历史指标日志。示例中,指定日期为2024年11月06日。
atop -r 20241106
#查看指定日期内自指定时间起的历史指标日志。示例中,指定日期为2024年11月06日,开始时间为14:00。
atop -r 20241106 -b 14:00
#查看指定日期内,指定时间段的历史指标日志。示例中,指定的日期为2024年11月5日,时间段为00:04至00:08。
atop -r 20241105 -b 00:04 -e 00:087、查看系统活动报告
#查看当前系统在 1 分钟内(12 次,间隔 5 秒)的CPU使用率报告
atopsar -c 5 12
#查看当天指定时间段的内存指标报告。示例中,时间段为18:00至18:01
atopsar -m -b 18:00 -e 18:01
#查看指定日期内,指定时间段的内存指标报告。示例中,指定的日期为2024年11月5日,时间段为18:00至18:01
atopsar -m -r 20241105 -b 18:00 -e 18:018、其他操作
8.1、配置天级别日志轮转策略
您可以参考以下步骤,为 atop 配置按天轮转日志策略,从而实现每天生成一个 atop 指标日志文件。
- (条件可选)根据自身需求调整监控周期、日志保留时间及日志存储路径配置,相关操作,请参见(可选)配置监控周期及日志保留时间
- 执行如下命令,将每日日志轮转相关服务设置为开机启动并启动服务。
sudo systemctl enable --now atop atopacct atop-rotate.timer:grey_question:说明
以上示例设置为每天生成一个日志文件,如果您的业务需要对日志进行更加复杂的处理,您可以结合
logrotate或自定义脚本等方式实现日志管理
9、加载可选的netatop 内核模块
如需监测网络使用率,可安装网络监控模块 netatop
:grey_question:说明
netatop能够监测每个进程或线程发送和接收的 TCP 及 UDP 数据包统计信息。在atop中,netatop并未默认安装。如需在其他Linux发行版上加载可选的netatop内核模块,请参考atop官方手册进行安装。更多内容,请参见Module netatop。
#1、执行如下命令,为当前内核安装内核开发包及编译所需软件环境。
sudo yum install -y kernel-devel dkms elfutils-libelf-devel
#2、执行如下命令,下载最新版本netatop源码至指定目录。
cd /usr/src/ && sudo wget https://www.atoptool.nl/download/netatop-3.2.2.tar.gz --no-check-certificate
#3、执行如下命令,解压源码并进入源码目录。
sudo tar -zxvf netatop-3.2.2.tar.gz && cd netatop-3.2.2
#4、执行如下命令,基于源码构建并安装模块和守护程序。
sudo make && sudo make install
#5、执行如下命令,启动netatop服务。
sudo systemctl start netatop
