当前位置:首页>Linux>《Linux 性能监控全家桶:top、htop、atop、glances 对比》

《Linux 性能监控全家桶:top、htop、atop、glances 对比》

  • 2026-09-08 07:32:26
《Linux 性能监控全家桶:top、htop、atop、glances 对比》
top 是运维老朋友,但面对复杂场景是否够用?htop 彩色交互更直观,atop 能看历史,glances 还能 Web 展示。本文对比 4 款主流监控工具,帮你选对场景用对工具。

一、四款工具速览

工具
特点
安装包大小
学习曲线
top
系统自带,无需安装
0
⭐ 基础
htop
彩色交互,支持鼠标,更直观
~200KB
⭐ 简单
atop
记录历史,支持磁盘/网络 IO
~500KB
⭐⭐ 中等
glances
跨平台,Web 界面,信息最全
~5MB
⭐⭐ 中等

二、top — 经典但够用

# 系统自带,直接运行top

核心优势

  • ✅ 无需安装,任何 Linux 都有

  • ✅ 资源占用极低

  • ✅ 脚本友好(top -bn1 可非交互输出)

常用操作

按键
功能
1
显示每个 CPU 核心
M
按内存排序
P
按 CPU 排序(默认)
c
显示完整命令路径
k
输入 PID 杀死进程
d
修改刷新间隔
W
保存配置到 ~/.toprc

非交互模式(脚本用)

# 输出一次,用于脚本采集top -bn1 | head -20# 持续输出 3 次,间隔 2 秒top -bd 2 -n 3 > /tmp/top.log

缺点

  • ❌ 黑白界面,信息密度高,新手不友好

  • ❌ 不支持鼠标

  • ❌ 无法查看历史

  • ❌ 磁盘/网络 IO 信息缺失


三、htop — 颜值即正义

# 安装sudo yum install htop    # CentOS/RHELsudo apt install htop    # Ubuntu/Debian# 运行htop

界面亮点

  CPU[||||||||||||||||||||||||100.0%]  Mem[|||||||||||||||||67.2G/125G]  CPU[|||||||||||||||||||||||||95.2%]  Swp[|                  2.1G/4G]  Tasks: 245, 3 running; Load average: 2.50 2.30 2.10  Uptime: 45 days, 02:30:00  PID USER  PRI  NI  VIRT   RES   SHR S  CPU% MEM%   TIME+  Command 1234 root   20   0  234G 45678  6789 R  45.6  0.3 123:45  java -jar app.jar 5678 mysql  20   0  890G 23456 12345 S  12.3  1.5 456:12  mysqld

核心优势

  • ✅ 彩色界面,CPU/内存用进度条直观展示

  • ✅ 支持鼠标,点击排序、选中进程

  • ✅ 树形视图(F5),看进程父子关系

  • ✅ 搜索过滤(F3/F4),快速定位进程

常用按键

按键
功能
F1
 / h
帮助
F2
 / S
设置(颜色、显示项、排序)
F3
 / /
搜索进程
F4
 / \
过滤进程
F5
 / t
树形视图
F6
 / <
选择排序列
F9
 / k
杀死进程
F10
 / q
退出
u
按用户过滤
Space
标记进程(多选批量操作)

自定义配置

# 配置文件位置~/.config/htop/htoprc# 常用设置(F2 进入)# - Colors:选配色方案# - Columns:添加/删除显示列(如添加 IO_READ_RATE、IO_WRITE_RATE)# - Display options:显示线程、显示树形

缺点

  • ❌ 仍需手动安装

  • ❌ 无法查看历史数据

  • ❌ 磁盘/网络 IO 信息有限


四、atop — 历史回溯神器

# 安装sudo yum install atop    # CentOS/RHELsudo apt install atop    # Ubuntu/Debian# 运行atop                    # 实时模式atop -r /var/log/atop/atop_20260713  # 回放历史

核心优势:记录一切

atop 是唯一一个默认后台记录所有资源使用历史的工具:

# 启动 atop 守护进程(自动记录)sudo systemctl enable atopsudo systemctl start atop# 默认每 10 分钟记录一次快照# 日志位置:/var/log/atop/ls /var/log/atop/atop_20260701  atop_20260702  atop_20260713

独特功能:资源 accountable

# 查看进程的历史资源使用(CPU、内存、磁盘、网络)atop -r /var/log/atop/atop_20260713# 回放时按键t    # 前进 10 分钟T    # 后退 10 分钟b    # 跳到指定时间g    # 按用户过滤p    # 按进程名过滤

显示列说明

ATOP - localhost            2026/07/13  10:00:00            10 seconds elapsedPRC |  sys   2.50s |  user   5.20s  |  #proc    245 |  #zombie    0  |  #exit      0 |CPU |  sys     15% |  user     25%  |  irq       2% |  idle       58% |  wait       0% |CPL |  avg1   2.50 |  avg5    2.30  |  avg15    2.10 |                 |  numcpu     8 |MEM |  tot   125.8G |  free    5.2G  |  cache   45.6G |  dirty    0.1G  |  buff    2.3G |SWP |  tot     4.0G |  free    1.9G  |                |                 |               |DSK |  sda       50% |  busy    120ms |  read      10  |  write     50   |  MB/s    25.6 |NET |  eth0    pcki 1000 | pcko 2000 |  si   5.2Mbps  |  so  12.8Mbps   |  err       0  |
区域
内容
PRC
进程统计
CPU
CPU 使用率
CPL
负载和 CPU 数
MEM
内存统计
SWP
交换分区
DSK磁盘 IO
(atop 独有!)
NET网络 IO
(atop 独有!)

进程级 IO 查看

# 实时模式下按 d 键,按磁盘 IO 排序# 可以看到每个进程的读写速率# 网络 IO 按 n 键排序

缺点

  • ❌ 界面不如 htop 美观

  • ❌ 学习曲线稍陡

  • ❌ 默认 10 分钟间隔,可能错过瞬时峰值

调整记录频率:

# /etc/sysconfig/atopINTERVAL=60    # 改为 1 分钟# 日志保留天数LOGGENERATIONS=28

五、glances — 信息最全的瑞士军刀终端界面

localhost (Rocky Linux 9.4 64bit / Linux 5.14.0-427) - IP 192.168.1.100CPU  [||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||  15.2%]MEM  [|||||||||||||||||||||||||||||||||||||||                      67.2%]SWAP [||                                                            2.1%]LOAD    2.50  2.30  2.10TASKS   245 (3 run, 242 slp, 0 oth)NETWORK     Rx/s    Tx/s    cumRx    cumTxeth0        5.2M    12.8M   1.2T     3.5Tlo          0.5M    0.5M    120G     120GDISK I/O    R/s    W/s    RB/s    WB/ssda         10     50     2.5M    25.6Msdb         0      0      0       0FILE SYS    Used    Total   Use%/           45.2G   100G    45%/data       230G    500G    46%PROCESS    CPU%    MEM%    VIRT    RES    PID   USER    TIME+   Commandjava       45.6    0.3     234G    45678  1234  root    123:45  java -jar app.jarmysqld     12.3    1.5     890G    23456  5678  mysql   456:12  mysqld

核心优势

  • ✅ 信息最全:CPU、内存、磁盘、网络、文件系统、传感器、Docker...

  • ✅ Web 模式:浏览器访问,远程监控

  • ✅ API 接口:glances -w --password 提供 REST API

  • ✅ 插件丰富:InfluxDB、Prometheus、RabbitMQ 等导出

Web 模式启动

# 启动 Web 服务glances -w -p 61208 --password# 浏览器访问http://server-ip:61208# 设置密码glances --password

常用选项

选项
功能
-w
Web 模式
-p PORT
指定端口
--password
启用密码
-q
安静模式,无终端输出
-f /path
导出到文件
--export influxdb
导出到 InfluxDB

缺点

  • ❌ 依赖 Python,安装包较大

  • ❌ 终端模式下信息密度过高,小屏幕显示不全

  • ❌ 资源占用略高于其他工具


六、四款工具对比总结

维度
top
htop
atop
glances
安装
自带
需安装
需安装
需安装
界面
黑白
彩色
彩色
彩色
鼠标支持
❌
✅
❌
Web 支持
历史记录
❌
❌
✅
❌
磁盘 IO
❌
部分
✅
✅
网络 IO
❌
❌
✅
✅
进程树
❌
✅
✅
✅
Web 展示
❌
❌
❌
✅
API 接口
❌
❌
❌
✅
资源占用
极低
低
低
中等
适用场景
快速查看
日常交互
故障回溯
全面监控

七、选型建议

场景
推荐工具
原因
临时登录看一眼
top
不用装,直接打
日常排查问题
htop
美观直观,操作方便
事后分析故障
atop
有历史数据,能回溯
搭建监控大屏
glances
Web 模式,信息最全
脚本自动化采集
toptop -bn1
 输出稳定
远程监控多台服务器
glances
Web + API,集中展示

八、组合使用:我的日常 workflow

# 1. 登录服务器,先用 htop 快速看整体htop# 2. 发现 CPU 或 IO 异常,用 atop 查历史sudo atop -r /var/log/atop/atop_$(date +%Y%m%d)# 3. 需要看网络或磁盘详情,切 glancesglances# 4. 写脚本采集数据,用 toptop -bn1 -d1 | grep "Cpu(s)" | awk '{print $2}' | cut -d'%' -f1

九、atop 历史分析实战

# 查看昨天 14:00 左右的系统状态atop -r /var/log/atop/atop_20260712 -b 14:00# 在交互模式下t    # 前进T    # 后退P    # 按 CPU 排序M    # 按内存排序D    # 按磁盘 IO 排序N    # 按网络 IO 排序g    # 按用户过滤p    # 按进程名过滤

生产案例:昨晚服务卡顿,现在排查:

# 1. 找到昨天的 atop 日志ls /var/log/atop/# 2. 回放,跳到问题时间段sudo atop -r /var/log/atop/atop_20260712# 按 b,输入 02:30(凌晨2点半)# 3. 看当时 CPU、内存、磁盘、网络情况# 4. 按 P 排序,找到占用最高的进程# 5. 对比正常时段,确认根因

十、总结 checklist

□ top:应急查看,脚本采集,无需安装□ htop:日常首选,彩色交互,操作友好□ atop:故障回溯,历史数据,磁盘网络 IO 全记录□ glances:全面监控,Web 展示,API 集成□ atop 建议常驻后台:systemctl enable atop□ 小内存服务器慎用 glances□ 性能问题优先看 atop 历史,而不是实时 top

一句话总结

top 是急救包,htop 是日常工具,atop 是黑匣子,glances 是仪表盘——四者互补,组合使用才是运维监控的完整方案。

最新文章

随机文章