Atop 进程级性能监控教程
Atop 是一款功能强大的 Linux 性能监控工具,它不仅像 top 一样显示实时的进程信息,还能记录所有进程的资源使用历史数据。Atop 最大的亮点在于它会自动记录已退出进程的资源消耗,并支持历史数据回放,让你能够追溯分析过去某个时间点的系统状态。在搬瓦工 VPS 上配置 Atop,可以精确定位性能瓶颈的根因。
一、安装与配置
# Ubuntu / Debian
apt update
apt install atop -y
# CentOS / RHEL
yum install atop -y
# 启动 atop 守护进程(后台数据采集)
systemctl enable atop
systemctl start atop
# 验证服务状态
systemctl status atop
1.1 配置采集间隔
# 编辑配置文件
vi /etc/default/atop
# 设置采集间隔为 30 秒(默认 600 秒)
LOGINTERVAL=30
# 数据保留天数
LOGGENERATIONS=28
# 重启生效
systemctl restart atop
二、实时监控
# 启动实时监控(默认每 10 秒刷新)
atop
# 指定刷新间隔(每 5 秒)
atop 5
# 直接以特定视图启动
atop -m # 内存视图
atop -d # 磁盘视图
atop -n # 网络视图
2.1 交互快捷键
在 atop 运行时按以下键切换视图:
- g:通用视图(默认,显示 CPU 和内存)
- m:内存详情视图
- d:磁盘 I/O 视图
- n:网络视图
- v:进程详细信息
- c:显示完整命令行
- P:按 CPU 使用率排序
- M:按内存使用排序
- D:按磁盘 I/O 排序
- N:按网络流量排序
- A:自动排序(按最紧张的资源排序)
- 1:显示每个 CPU 核心的使用情况
三、系统概览区域
Atop 顶部显示系统级的资源概览:
# CPU 行
# sys: 内核态 user: 用户态 irq: 中断 idle: 空闲 wait: I/O 等待 steal: 被偷取
# MEM 行
# tot: 总内存 free: 空闲 cache: 缓存 buff: 缓冲 slab: 内核对象缓存
# SWP 行
# tot: 总 Swap free: 空闲 Swap swout: 换出速度 swin: 换入速度
# DSK 行
# sda/vda: 设备名 busy: 忙碌百分比 read: 读速度 write: 写速度
# NET 行
# 各网络接口的收发包数和流量
四、历史数据回放
这是 Atop 最强大的功能 -- 查看过去的系统状态:
# 查看今天的历史数据
atop -r /var/log/atop/atop_$(date +%Y%m%d)
# 查看昨天的数据
atop -r /var/log/atop/atop_$(date -d yesterday +%Y%m%d)
# 查看特定日期的数据
atop -r /var/log/atop/atop_20260315
# 从指定时间开始查看
atop -r /var/log/atop/atop_20260315 -b 14:00
# 查看指定时间范围
atop -r /var/log/atop/atop_20260315 -b 09:00 -e 17:00
4.1 历史回放中的导航
- t:前进到下一个采样时间点
- T:后退到上一个采样时间点
- b:跳转到指定时间
五、高级过滤
# 只显示特定用户的进程
# 在交互模式中按 'U' 然后输入用户名
# 只显示特定进程名
# 在交互模式中按 'I' 然后输入进程名
# 只显示活跃进程(消耗资源的进程)
# 默认已过滤,按 'a' 切换显示所有/活跃进程
六、批量模式与数据导出
# 批量模式输出(适合脚本处理)
atop -P CPU 2 5
# 导出 CPU 数据
atop -r /var/log/atop/atop_$(date +%Y%m%d) -P CPU > cpu_report.txt
# 导出内存数据
atop -r /var/log/atop/atop_$(date +%Y%m%d) -P MEM > mem_report.txt
# 导出所有进程的 CPU 使用
atop -r /var/log/atop/atop_$(date +%Y%m%d) -P PRC > process_cpu.txt
# 导出磁盘统计
atop -r /var/log/atop/atop_$(date +%Y%m%d) -P DSK > disk_report.txt
# 使用 atopsar 生成类似 SAR 的报告
atopsar -c -r /var/log/atop/atop_$(date +%Y%m%d) # CPU
atopsar -m -r /var/log/atop/atop_$(date +%Y%m%d) # 内存
atopsar -d -r /var/log/atop/atop_$(date +%Y%m%d) # 磁盘
七、实用技巧
7.1 查找已退出的进程
Atop 会记录在采样间隔内退出的进程,这对于排查短命但资源密集的进程非常有用:
# 在历史回放中,已退出的进程会标记为 <E>
# 使用 P 按 CPU 排序可以发现消耗大量 CPU 后退出的进程
7.2 发现资源异常
# Atop 会用红色高亮标记异常的资源使用
# 红色 CPU 行:CPU 利用率过高
# 红色 MEM 行:内存使用过高
# 红色 DSK 行:磁盘忙碌度过高
# 红色 NET 行:网络利用率过高
7.3 控制日志大小
# 查看 atop 日志占用
du -sh /var/log/atop/
# 清理旧日志
find /var/log/atop -name "atop_*" -mtime +14 -delete
# 调整保留天数
vi /etc/default/atop
# LOGGENERATIONS=14
八、Atop 与 top/htop 对比
- 历史回放:Atop 支持历史数据回放,top/htop 只能实时查看。
- 已退出进程:Atop 记录已退出进程的资源消耗,top/htop 无法看到。
- 磁盘/网络:Atop 同时显示进程级的磁盘 I/O 和网络流量。
- 资源占用:Atop 守护进程本身占用较少资源,适合长期运行。
总结
Atop 是 Linux 系统中最全面的进程级性能监控工具。它的历史回放功能使其在排查间歇性性能问题时特别有用。在搬瓦工 VPS 上部署 Atop 守护进程,可以帮你回溯分析任何时间点的系统状态。建议搭配 Glances 系统监控 和 NetHogs 网络监控 一起使用。选购搬瓦工 VPS 请参考全部方案,使用优惠码 NODESEEK2026 可享受 6.77% 循环折扣。