Ubuntu 服务器 CPU、内存、磁盘性能监控指南
Ubuntu Server(24.04 LTS / 26.04 LTS)内置了丰富的命令行监控工具,从基础的 top 到现代 Rust 实现的 btop,再到历史统计的 sar,可以覆盖实时查看、瓶颈诊断、历史趋势分析等几乎所有场景。
性能监控的核心指标:
- CPU:使用率(user/system/idle/iowait)、负载平均值(1/5/15 min)、上下文切换、进程数
- 内存:总/已用/可用、缓存/缓冲、swap 使用率与换页频率(si/so)
- 磁盘:IOPS、吞吐量(kB_read/s、kB_wrtn/s)、等待时间(await)、%util(饱和度)、队列长度
以下按实时交互式、命令行统计、历史数据分类展开,结合 2025–2026 年实际生产推荐。
1. 实时交互式监控(最常用,推荐首选 btop / htop)
这些工具提供彩色、鼠标支持、进程排序、kill 功能,适合快速诊断“现在谁在吃资源”。
| 工具 | 安装命令 | 核心优势(2026 年视角) | CPU/内存/磁盘覆盖 | 资源占用 | 推荐场景 |
|---|---|---|---|---|---|
| btop | sudo apt install btop | Rust 实现、最美观 UI、GPU 支持、自定义布局、鼠标操作、冻结帧 | 全(磁盘、网络、进程) | 极低 | 现代首选,日常监控、开发机/服务器首装 |
| htop | sudo apt install htop | 经典、树状进程视图、多核条形图、F2 配置、F9 kill | CPU/内存/进程为主,磁盘弱 | 低 | 兼容性最好、生产服务器标配 |
| glances | sudo apt install glances | 全能概览(CPU/内存/磁盘/网络/传感器/容器)、Web 模式、导出 CSV | 最全面 | 中等 | 一屏看全系统 + 远程监控(glances -w) |
| bottom (btm) | cargo install bottom 或 apt(部分仓库) | Rust、类似 btop、可视化图表、主题丰富 | 全 | 极低 | btop 替代,偏好不同 UI 的用户 |
安装与快速上手:
Bash
sudo apt update && sudo apt install -y btop htop glances sysstat
# Rust 工具(可选)
cargo install bottom常用操作技巧:
- btop:鼠标点击排序、m 切换内存单位、箭头选进程 → Enter 查看详情 → q 退出
- htop:F6 排序(CPU/MEM/IO)、F5 树视图、空格多选 kill
- glances:上下键切换视图、1 显示单核、d 显示磁盘详情、q 退出
生产常用组合:
- 快速看整体:btop 或 glances
- 进程吃 CPU/内存:htop 按 F6 → RES/CPU%
- 磁盘谁在狂写:iotop(需 sudo,类似 top 但针对 IO)
2. 命令行统计工具(无交互,适合脚本/监控)
这些工具输出纯文本,便于 cron、脚本、Prometheus exporter 采集。
| 工具 | 命令示例 | 重点指标解释 | 典型用法场景 |
|---|---|---|---|
| top | top -b -n 1 或 top -1(显示所有核) | load average、%Cpu(s)、内存条、进程列表 | 脚本采集、基础检查 |
| free -h | free -h -s 5(每 5s 刷新) | total/used/available、buff/cache、swap | 内存压力快速判断 |
| vmstat 1 5 | vmstat 1 5 | procs(r/b)、memory、swap(si/so)、io(bi/bo)、cpu | 换页频繁(si/so 高)、IO 等待(wa 高) |
| iostat -x 1 5 | iostat -xmdz 1 5(需 sysstat) | %util、await、svctm、r/s w/s、rkB/s wkB/s | 磁盘饱和度(%util >80–90% 为瓶颈) |
| iotop | sudo iotop –only | 实时进程级 DISK READ/WRITE | 找出哪个进程在狂写日志/数据库 |
| mpstat 1 5 | mpstat -P ALL 1 5(需 sysstat) | 每个 CPU 核的使用率(usr/sys/iowait/irq) | 多核不均衡、iowait 高 |
| pidstat | pidstat -u 1 5 或 pidstat -d 1(磁盘) | 进程级 CPU/IO 统计 | 特定进程性能追踪 |
sysstat 套装:
Bash
sudo apt install sysstat
# 启用数据收集(默认每 10 分钟采样)
sudo systemctl enable --now sysstat3. 历史数据与长期趋势(sar + 需要时装 Netdata/ Prometheus)
- sar(sysstat 提供):历史 + 实时Bash
sar -u 1 5 # CPU 历史/实时 sar -r 1 5 # 内存 + swap sar -d 1 5 # 磁盘(-p 显示设备名) sar -n DEV 1 5 # 网络 # 查看昨天整天 CPU sar -u -f /var/log/sysstat/sa24 - 长期趋势推荐(2026 年生产主流):
- Netdata:零配置、实时 Web 仪表盘、历史图表、警报(CPU/内存/磁盘/网络/进程/容器全覆盖)Bash
bash <(curl -Ss https://my-netdata.io/kickstart.sh) # 访问 http://你的IP:19999 - Prometheus + Node Exporter:指标采集 + Grafana 可视化,适合多服务器集群
- Glances Web 模式:glances -w → http://IP:61208(轻量替代)
- Netdata:零配置、实时 Web 仪表盘、历史图表、警报(CPU/内存/磁盘/网络/进程/容器全覆盖)
4. 瓶颈快速判断口诀(生产常用)
- CPU:load average > 核数 × 1.5–2 → 过载;iowait > 20% → 等 IO;usr 高 → 应用计算密集
- 内存:available < 10% 或 swap 使用 > 几百 MB + si/so >0 → 内存压力大
- 磁盘:%util > 85–90% + await > 10–20ms → 存储瓶颈;rkB/s wkB/s 远低于盘规格 → 没饱和但慢(可能是随机 IO)
5. 2026 年生产生存建议
- 新服务器必装:btop(或 htop)+ sysstat + iotop
- 日常监控:btop 或 glances 一屏看全
- IO 异常:iotop + iostat -xmdz 1
- 长期观察:启用 Netdata(最简单)或 Prometheus
- 脚本监控:用 sar、vmstat、free 采集 → 推送到告警系统
这些工具组合用熟后,基本能在 30 秒内定位“为什么服务器卡了”。