使用atop工具监控Linux系统指标

说明:不同Linux版本使用的atop工具版本不同,配置方法稍微有所不同,本文以CentOS7/8进行介绍。

atop是一款用于监控Linux系统资源与进程的工具,它以一定的频率记录系统的运行状态,所采集的数据包含系统资源(CPU、内存、磁盘和网络)使用情况和进程运行情况,并能以日志文件的方式保存在磁盘中,服务器出现问题后,可获取相应的历史日志文件进行分析。

1 安装atop

sudo yum install atop –y

2 编辑配置文件

默认配置文件 /etc/sysconfig/atop的内容如下:

LOGOPTS=""
LOGINTERVAL=600
LOGGENERATIONS=28
LOGPATH=/var/log/atop

配置项说明:

  • LOGOPTS:额外的日志记录选项。例如,设置-L可在日志轮转时创建一个指向最新日志的符号链接 /var/log/atop/atop_current,方便快速访问。
  • LOGINTERVAL:日志记录的采样间隔,单位是秒。默认值通常是 600(即10分钟),表示每10分钟记录一次系统快照。
  • LOGGENERATIONS:日志文件的生命周期,单位是天。默认值通常是28,表示 atop 会自动删除28天前的旧日志文件。
  • LOGPATH:日志文件存储路径,默认为/var/log/atop。

根据需求及实际情形修改配置项,如LOGINTERVAL修改为30,LOGGENERATIONS修改为7。

3 启动服务

systemctl enable –now atop atopacct atop-rotate.timer

注:atopacct守护进程的核心作用是开启并利用Linux内核的“进程记账”功能,为 atop 补全进程的“完整档案”。

atop-rotate.timer是一个systemd定时器,它确保 atop 的日志文件按天进行分割和归档。

检查服务状态

systemctl status atop atopacct atop-rotate.timer

注:atop atopacct是 active(running)表示运行正常,atop-rotate.timer是active(waiting) 表示运行正常。

4 实时监控

直接在终端输入 atop 即可进入交互式实时监控界面(如图示)。

也可通过指定参数来控制刷新频率和采样次数:atop [采样间隔秒数] [采样次数]

atop:默认10秒采集一次。

atop 5:每5秒采集一次。

atop 10 30:每10秒采集一次,共采集30次。

atop 30 10 > /tmp/atop.mem    以30秒为间隔,采集10次,并将结果写入文件atop.mem。

进入交互界面后,可以使用以下快捷键切换视图或排序:

按键功能
c显示完整命令行
g通用视图(默认)
m/M内存视图/按内存排序
d/D磁盘视图/按磁盘排序
n/N网络视图/按网络排序(需安装并加载netatop内核模块)
a聚合视图,将同一程序的所有线程/进程资源聚合显示
C按 CPU 排序
t / Tt:跳转到下一个监控时间点;T:跳转到上一个监控时间点
b跳转到指定时间点(格式 HH:MM)
h显示帮助
q退出

5 查看历史日志

atop服务成功运行后,会定期在/var/log/atop/目录下生成以atop_YYYYMMDD格式命名的二进制日志文件。

5.1 使用atop -r <日志文件>命令加载指定的日志文件。

查看当天的日志:atop -r        
查看指定日期的日志:atop -r /var/log/atop/atop_YYYYMMDD

加载日志后,界面显示的是该日志文件的第一个时间点快照。

  • 按 t 键:向后跳转到下一个时间点的快照。
  • 按 T 键:向前跳转到上一个时间点的快照。
  • 按 b 键:输入具体时间(格式 HH:MM),直接跳转到该时间点。

在查看日志时,同样可以使用交互命令来排序和筛选。

5.2 直接通过命令行指定时间段查看历史日志

若需查看特定时间段内的系统资源占用情况(例如排查固定时间点的异常),可在加载日志时通过 -b 和 -e 参数直接指定起止时间,无需在交互界面中逐步翻页。

atop -r /var/log/atop/atop_YYYYMMDD -b HH:MM -e HH:MM

示例:查看 2026 年8 月1 日 09:00 至 09:30 的系统资源占用情况:

atop -r /var/log/atop/atop_20260801 -b 09:00 -e 09:30

6 生成指标报告

atopsar是atop工具包中的一个非交互式的命令行工具,用于从atop记录的二进制日志文件中提取数据并生成系统性能报告。

6.1 atopsar命令基本语法

atopsar [options] [interval] [count]
  • [options]:用于指定报告类型的标志,例如-c(CPU),-m(内存),-d(磁盘)。
  • [interval]:指定输出报告的时间间隔,单位为秒。
  • [count]:指定输出报告的次数。

6.2 示例

查看当前系统在 1 分钟内(12 次,间隔 5 秒)的CPU使用率指标报告。

atopsar -c 5 12

查看当天10:00至10:10的内存指标报告

atopsar -m -b 10:00 -e 10:10

查看2026年8月1日 15:00至15:10的内存指标报告。

atopsar -m -r /var/log/atop/atop_20260801 -b 15:00 -e 15:10(如图示)

附录:安装网络监控模块 (netatop)

atop 默认不支持按进程统计网络流量。如需此功能,需安装 netatop模块。netatop内核模块能够监测每个进程或线程发送和接收的TCP及UDP数据包统计信息。

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

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

sudo systemctl enable netatop