1. 核心监控指标解析
为什么需要监控这些资源?
- CPU利用率:反映系统处理任务的繁忙程度,持续高负载可能导致服务延迟。
- 内存占用:物理内存不足会触发Swap交换,显著降低性能。
- Swap使用率:频繁的Swap读写是系统“喘不过气”的红色警报。
关键指标的计算逻辑
- CPU利用率:(1 - idle_time / total_time) * 100%
- 内存利用率:(used / total) * 100%
- Swap利用率:类似内存计算,但需注意free命令中的used字段包含缓存(buff/cache)。
2. 命令行工具:快速诊断的利器
2.1 top:实时动态监控
启动命令:
top
输出关键字段解读:
- %Cpu(s)行:
- us(用户态)、sy(内核态)、id(空闲)、wa(I/O等待)
- 内存与Swap:显示在顶部汇总行(按E切换单位)。
操作技巧:
- 按P按CPU排序、M按内存排序。
- 按1展开多核CPU详情。
2.2 htop:交互式增强工具
安装与启动:
sudo apt install htop # Debian/Ubuntu
htop
核心优势:
- 彩色界面,直观显示CPU/内存使用条。
- 支持鼠标点击排序、直接杀死进程。
2.3 vmstat:系统整体状态快照
命令示例(每2秒刷新一次):
vmstat 2
输出解析:
- procs:r(运行队列)、b(阻塞进程)。
- memory:swpd(已用Swap)、free(空闲内存)。
- swap:si(Swap换入)、so(Swap换出)。
2.4 free:精准计算内存与Swap
常用参数:
free -h # 人类可读格式
free -s 5 # 每5秒刷新
计算内存使用率:
total=$(free | awk '/Mem:/ {print $2}')
used=$(free | awk '/Mem:/ {print $3}')
echo "内存利用率:$(echo "scale=2; $used/$total*100" | bc)%"
2.5 mpstat:多核CPU细分统计
安装与使用:
sudo apt install sysstat # 安装
mpstat -P ALL 2 # 每2秒报告所有CPU核心
输出示例:
3. 系统文件与脚本:底层数据的直接访问
3.1 从/proc文件系统获取原始数据
- CPU信息:
cat /proc/cpuinfo # 逻辑核数、型号等
cat /proc/stat # 全局CPU时间统计
- 内存与Swap:
cat /proc/meminfo | grep -E 'MemTotal|MemFree|SwapTotal|SwapFree'
3.2 自定义Shell脚本实现自动化计算
脚本示例:综合监控
#!/bin/bash
# 获取CPU利用率(最近1秒)
cpu_usage=$(top -bn1 | grep "%Cpu(s)" | awk '{print 100 - $8}')
# 获取内存利用率
mem_info=$(free | grep Mem)
mem_total=$(echo $mem_info | awk '{print $2}')
mem_used=$(echo $mem_info | awk '{print $3}')
mem_percent=$(echo "scale=2; $mem_used/$mem_total*100" | bc)
# 输出结果
echo "CPU使用率:${cpu_usage}%"
echo "内存使用率:${mem_percent}%"
4. 高级工具与自动化监控
4.1 sar:历史性能数据分析
配置与使用:
sudo apt install sysstat
sudo systemctl enable sysstat # 启用历史记录
sar -u 2 3 # CPU报告(每2秒一次,共3次)
sar -r # 内存统计
sar -S # Swap使用情况
4.2 glances:一体化仪表盘
安装与启动:
pip install glances
glances
功能亮点:
- 实时显示CPU、内存、Swap、磁盘、网络等。
- 支持Web端访问(glances -w)。