Linux系统监控入门
Linux系统监控入门
为什么需要系统监控
系统监控可以帮助我们:
- 及时发现系统瓶颈
- 预防系统故障
- 优化系统性能
- 规划资源扩展
CPU监控
top命令
# 启动top
top
# 常用快捷键
# P - 按CPU排序
# M - 按内存排序
# 1 - 显示每个CPU核心
# q - 退出
top输出解读:
top - 14:30:00 up 10 days, 2:15, 1 user, load average: 0.50, 0.75, 0.60
Tasks: 150 total, 1 running, 149 sleeping, 0 stopped, 0 zombie
%Cpu(s): 5.0 us, 2.0 sy, 0.0 ni, 92.0 id, 1.0 wa, 0.0 hi, 0.0 si, 0.0 st
MiB Mem : 16000.0 total, 8000.0 free, 4000.0 used, 4000.0 buff/cache
MiB Swap: 4000.0 total, 4000.0 free, 0.0 used. 11000.0 avail Mem
htop命令
# 安装htop
sudo apt-get install htop # Debian/Ubuntu
sudo yum install htop # CentOS/RHEL
# 启动htop
htop
htop提供了更友好的界面,支持鼠标操作。
mpstat命令
# 查看每个CPU核心使用率
mpstat -P ALL 1 5
内存监控
free命令
# 查看内存使用
free -h
# 输出解释
# total: 总内存
# used: 已使用
# free: 空闲
# shared: 共享内存
# buff/cache: 缓冲/缓存
# available: 可用内存
vmstat命令
# 每秒采样一次,共采样5次
vmstat 1 5
# 输出关键列
# r: 运行队列中的进程数
# b: 阻塞的进程数
# swpd: 使用的交换空间
# free: 空闲内存
# buff: 缓冲区使用
# cache: 缓存使用
# si: 从磁盘换入
# so: 换出到磁盘
磁盘监控
df命令
# 查看磁盘空间使用
df -h
# 查看inode使用
df -i
# 查看特定文件系统
df -h /home
iostat命令
# 安装sysstat
sudo apt-get install sysstat
# 查看磁盘IO统计
iostat -x 1 5
# 输出关键列
# %util: 磁盘使用率
# await: 平均IO等待时间
# r/s, w/s: 每秒读写次数
iotop命令
# 安装iotop
sudo apt-get install iotop
# 查看IO最高的进程
sudo iotop
网络监控
iftop命令
# 安装iftop
sudo apt-get install iftop
# 监控网络流量
sudo iftop -i eth0
nethogs命令
# 安装nethogs
sudo apt-get install nethogs
# 按进程监控网络
sudo nethogs
netstat/ss命令
# 查看网络连接
netstat -tulpn
ss -tulpn
# 查看连接统计
netstat -s
综合监控工具
sar命令
# CPU使用率
sar -u 1 5
# 内存使用
sar -r 1 5
# 磁盘IO
sar -d 1 5
# 网络流量
sar -n DEV 1 5
实践:编写监控脚本
#!/bin/bash
echo "=== 系统监控报告 ==="
echo "时间: $(date)"
echo ""
echo "--- CPU使用 ---"
uptime
echo ""
echo "--- 内存使用 ---"
free -h
echo ""
echo "--- 磁盘使用 ---"
df -h | grep -E "^/dev/"
echo ""
echo "--- 网络连接 ---"
ss -tulpn | head -10
总结
系统监控是运维工程师的日常技能。通过这些工具,可以及时了解系统状态,发现和解决问题,确保系统稳定运行。