目录
5.1 上半部分:系统级资源概览 (System Level Statistics)
5.2 下半部分:进程/线程级资源详情 (Process Level Statistics)
1. 安装方式
sudo yum install -y atop # CentOS/RHEL
sudo dnf install -y atop # RHEL/CentOS 8/Fedora
sudo apt install -y atop # Ubuntu/Debian
sudo zypper install -y atop # openSUSE
sudo pacman -S atop # Arch Linux
2. 修改配置文件
修改/etc/sysconfig/atop 或 /usr/share/atop/atop.daily(CentOS)或/etc/default/atop(Ubuntu)
设置监控周期(如60秒)、日志保留时间(如15天)及存储路径
LOGINTERVAL=60 #采样间隔
LOGGENERATIONS=15 #保留最近15天日志
LOGPATH=/var/log/atop #日志路径,若自定义OGPATH指定日志存储目录(需提前创建目录并设置权限)
3. 设置开机自启
sudo systemctl enable atop --now
4. 使用指南
4.1 实时监控(类似 top)
4.2 查看历史记录
atop -r [日志文件路径]
4.3 常用快捷键
这些是 atop 最强大的功能之一,可以动态改变显示内容和排序:
-
g: 切换回概览模式 (默认视图)。 -
m: 按内存使用 (%MEM) 降序排序进程。 -
d: 按磁盘活动 (DSK) 降序排序进程(显示每个进程的读写速率)。排查 I/O 瓶颈利器! -
n: 按网络活动 (NET) 降序排序进程(显示每个进程的网络流量)。排查网络流量利器! -
c: 按 CPU 使用 (%CPU) 降序排序进程 (默认)。 -
a: 按最活跃资源自动排序进程 (atop 会根据系统瓶颈自动选择排序方式,如高 CPU 时按 CPU 排,高 I/O 时按 I/O 排)。 -
t: 在进程/线程视图之间切换 (需要启动时加-y才有效)。 -
u/U: 只显示属于特定用户的进程。按u后输入用户名。 -
f: 添加/移除显示字段。非常灵活,可以定制显示哪些进程级指标(如 PPID, 启动时间, 优先级等)。按f后根据提示选择字段。 -
l: 限制显示资源消耗超过阈值的进程。按l后输入 CPU 或 MEM 的百分比阈值。 -
h: 显示帮助信息,列出所有可用快捷键。 -
q: 退出 atop。 -
k: 杀死选中的进程 (会提示输入信号,默认 SIGTERM=15)。 -
i: 改变刷新间隔 (秒)。默认是采样间隔(安装时配置,通常 10 秒)。 -
+/-: 在查看历史日志 (atop -r) 时,向后/向前跳转一个采样点。 -
b: 在查看历史日志时,跳转到指定时间点。按b后输入时间 (格式 YYYYMMDD hh:mm)。 -
R: 反向当前排序顺序。
4.4 常用命令行参数
-
atop -r [file]: 回放指定的历史日志文件。 -
atop -b YYYYMMDD hh:mm: 回放历史日志,并直接跳转到指定时间点。 -
atop -y: 在线程级别显示信息 (需要内核支持)。 -
atop -1: 只显示一次采样结果(类似vmstat 1 1)然后退出。结合-b或-r可用于脚本分析历史。 -
atop -w [file]: 将实时监控数据写入指定的原始数据文件 (.atop格式,只能用atop -r读取)。 -
atop -P [资源码]: 启动时只显示特定的资源视图 (e.g.,atop -P CPU只显示 CPU 相关视图,atop -P MEM只显示内存,atop -P ALL显示全部)。资源码可以是:-
CPU,CPL(负载),MEM,SWP,PAG,DSK,NET,PRG(进程),PRM(进程内存),PRD(进程磁盘),PRN(进程网络),ALL(全部)
-
-
atop -a: 启动时按最活跃资源 (a) 排序进程。 -
atop -d: 启动时按磁盘活动 (d) 排序进程。 -
atop -m: 启动时按内存 (m) 排序进程。 -
atop -c: 显示完整的命令行 (而不是截断的)。 -
atop -u [user]: 只显示指定用户的进程。
5. 界面解读
运行 atop 后,屏幕分为两部分
-
5.1 上半部分:系统级资源概览 (System Level Statistics)
-
PRC (Process Summary): 进程/线程总数、运行中、睡眠中、僵尸进程数量。
-
CPU (Processor Utilization):
-
sys: 内核空间占用 %。 -
user: 用户空间占用 %。 -
irq: 硬件中断占用 %。 -
idle: 空闲 %。 -
wait: I/O 等待 % (重要!高值通常表示磁盘瓶颈)。 -
steal: (虚拟化环境) 被 Hypervisor 偷走的 CPU %。 -
guest: (虚拟化环境) 运行客户机占用的 CPU %。 -
curscal: 当前 CPU 频率缩放比例 (相对于基础频率)。 -
通常按 All (所有核心总和) 和 各逻辑核心 分别显示。
-
-
CPL (CPU Load): 1 分钟、5 分钟、15 分钟的平均负载 (
avg1,avg5,avg15)。 -
MEM (Memory Utilization):
-
tot: 物理内存总量。 -
free: 完全空闲内存。 -
cache: 页缓存 (可回收)。 -
buff: 缓冲区内存。 -
slab: 内核 Slab 缓存。 -
dirty: 脏页(等待写回磁盘)。 -
active: 活跃内存。 -
inact: 非活跃内存。 -
vmcom: 所有进程申请的总虚拟内存 (VSZ)。 -
vmlim: 虚拟内存上限。 -
vmuse: 实际使用的虚拟内存 (RSS 总和,但注意 RSS 有共享页重复计算问题)。 -
swap: Swap 总量、已用、空闲。
-
-
SWP (Swap Activity): 换入 (
si)/换出 (so) 的页面数 (KB/s)。 -
PAG (Paging Activity): 页换入 (
pi)/页换出 (po) 的页面数 (KB/s),以及扫描 (scan) 的页面数 (高值可能表示内存压力)。 -
DSK (Disk Utilization): 按物理磁盘 (
sda,sdb等) 或逻辑卷显示:-
busy: 磁盘忙碌时间百分比。 -
read/write: 读/写请求数 (次/秒)。 -
KiB/r/KiB/w: 平均每次读/写的数据量 (KiB)。 -
MBr/s/MBw/s: 读/写吞吐量 (MB/s)。 -
avq: 平均队列长度。 -
avio: 平均 I/O 服务时间 (毫秒)。
-
-
NET (Network Utilization): 按网络接口 (
eth0,wlan0等) 和协议层 (TCP, UDP) 显示:-
sp: 接口速度 (Mbps)。 -
pcki/pcko: 收/发包数 (个/秒)。 -
sp/si: 收/发包速度 (KB/s)。 -
coll: 冲突数 (有线网络)。 -
err/drp: 错误/丢包数。 -
tcpi/tcpo/udpi/udpo: TCP/UDP 收/发包数。 -
tcpao/tcpie/...: TCP 活动打开/被动打开/连接失败等状态计数。
-
-
-
5.2 下半部分:进程/线程级资源详情 (Process Level Statistics)
-
默认按 CPU 使用率 (
%CPU) 降序排序。显示每个进程/线程的关键信息:-
PID: 进程 ID。 -
TID: 线程 ID (如果使用-y选项)。 -
SYSCPU: 进程在内核态消耗的 CPU 时间。 -
USRCPU: 进程在用户态消耗的 CPU 时间。 -
VGROW: 虚拟内存增长量 (VSZ 变化)。 -
RGROW: 常驻内存增长量 (RSS 变化)。 -
RUID: 进程的实际用户 ID。 -
EUID: 进程的有效用户 ID。 -
ST: 进程状态 (R=运行, S=睡眠, D=不可中断睡眠, Z=僵尸, T=停止)。 -
EXC: 进程退出状态码 (如果已退出)。 -
THR: 进程包含的线程数。 -
S: 进程状态 (同ST)。 -
%CPU: CPU 使用率百分比 (所有核心总和)。 -
%MEM: 内存使用率百分比 (RSS 占物理内存的比例)。 -
CPU: 进程最后运行所在的 CPU 核心编号。 -
CMD: 命令名 (启动进程的命令行)。
-
-
6. 应用场景
-
6.1 实时诊断性能瓶颈
-
发现
CPU的wait高 -> 按d看哪个进程/磁盘 I/O 高。 -
发现
PAG的scan高或SWP的si/so高 -> 按m看哪个进程占用内存多。 -
发现网络
err/drp高 -> 按n看哪个进程流量大或检查物理接口状态。 -
发现某个进程持续高 CPU -> 按
c确认,可能需要进一步分析 (strace, perf)。 -
发现僵尸进程 (
PRC的zombie> 0) -> 在进程列表 (ST=Z) 中查看。
-
-
6.2 故障回溯
-
系统昨晚突然变慢 -> 用
atop -r /var/log/atop/atop_20240809回放昨天的日志。 -
定位到大概时间 -> 用
b跳转到具体时间点 (e.g.,b 20240809 02:30)。 -
用
g,m,d,n等键查看当时的系统资源瓶颈和罪魁祸首进程。
-
-
6.3 监控特定资源
-
atop -P DSK:专注监控磁盘 I/O。 -
atop -P NET:专注监控网络。 -
atop -P PRM, PRD:专注看进程的内存和磁盘使用。
-
-
6.4 识别资源消耗大户
-
定期运行
atop -a让 atop 自动高亮最耗资源的进程。 -
用
l过滤掉消耗小的进程。
-
-
6.5 安全审计
-
检查异常时间段 (
b) 的进程 (u,f查看 UID/EUID/CMD)。 -
检查异常网络连接 (
n, 结合netstat/ss更佳)。
-
7. 浏览器访问 Web 界面
若需远程查看,可结合 gotop 工具搭建 Web 前端:
go get github.com/bsmack/gotop
GOTOP_OPTS="--server --port 8080" ./gotop --source=/var/log/atop/atop.log
生产环境 atop 命令使用全解析
876

被折叠的 条评论
为什么被折叠?



