Linux系统监控是保障服务器稳定运行的基础技能。想象一下,如果你的网站突然打不开,或者服务器变得卡顿,却不知道哪里出了问题,这时候就需要借助监控工具来“诊断”系统状态。本文将带你认识Linux下最常用的监控工具,并理解关键性能指标,让你能快速发现系统异常。
一、常用基础监控工具¶
1. 进程监控:谁在“吃”系统资源?¶
当系统变慢时,首先要看看哪些进程占用了太多资源。ps 是最基础的进程查看工具,简单用法是:
ps aux
-a:显示所有用户的进程-u:显示进程详细信息(用户、CPU/内存占用、启动时间等)-x:显示无终端的后台进程
执行后会看到很多列,重点关注:
- PID:进程ID,唯一标识一个进程
- %CPU:进程占用CPU的百分比
- %MEM:进程占用内存的百分比
- USER:运行进程的用户
- COMMAND:进程的命令名称
如果想按CPU使用率排序,可执行:
ps aux --sort=-%cpu | head -10 # 显示CPU占用最高的前10个进程
2. 实时系统仪表盘:top命令¶
top 比 ps 更动态,能实时刷新系统状态,像一个“动态仪表盘”。直接执行 top:
top
顶部会显示系统整体状态,中间是进程列表。重点看:
- Load Average(负载平均值):格式为“1分钟负载, 5分钟负载, 15分钟负载”,表示单位时间内需要CPU处理的任务数。若CPU有4核,理想情况下1分钟负载不超过4。
- CPU使用率(Cpu(s)行):
- us:用户空间进程占用CPU时间(过高可能是程序异常,如死循环脚本)
- sy:内核空间进程占用CPU时间(系统调用过多,如频繁IO操作)
- wa:IO等待时间(磁盘读写慢时,wa会很高,需排查磁盘瓶颈)
- id:空闲CPU时间(越高越好,说明系统空闲)
3. 更友好的进程工具:htop¶
htop 是 top 的增强版,支持鼠标操作和进程树展示,适合更直观地管理进程。安装后执行:
htop
- 按
F5显示进程树,F9直接杀死进程,P按CPU排序,M按内存排序,q退出。
4. 内存“体检”:free命令¶
内存不足是常见问题,free 帮你直观查看内存使用:
free -h # -h 用MB/GB等人类可读单位显示
输出解释:
- total:总内存
- used:已用内存(含缓存)
- free:真正空闲内存(不含缓存)
- buff/cache:系统缓存数据的内存(非浪费,是优化的关键)
- available:实际可用内存(含可释放的缓存)
注意:buff/cache 不是“浪费”的内存,而是系统用于加速读写的数据缓存。
5. 磁盘空间“管家”:df与du¶
当系统提示“磁盘空间不足”时,df 和 du 是关键工具:
- df -h:查看磁盘分区整体空间(Use% 超过85%需清理)
df -h # 示例:/dev/vda1 75% 使用率,需关注
- du -sh /path:查看指定目录大小(
-s汇总,-h人类可读)
du -sh /var/log # 查看日志目录大小,方便清理
6. 磁盘IO性能:iostat¶
若怀疑磁盘读写慢,用 iostat 监控IO:
iostat -x 1 # -x 详细信息,1秒刷新一次
重点关注:
- tps:每秒IO请求数(越高表示磁盘繁忙)
- kB_read/s/kB_wrtn/s:每秒读写数据量(越高表示IO压力大)
- %util:磁盘忙碌百分比(超过80%说明磁盘是瓶颈)
7. 网络连接“侦探”:ss与netstat¶
当网络异常(如端口被占用、连接数过多),用 ss 或 netstat 排查:
- ss -tuln:查看TCP/UDP监听端口(t TCP, u UDP, l 监听, n 数字端口)
ss -tuln # 示例:0.0.0.0:22 表示SSH端口被监听
- ss -s:查看连接状态汇总(ESTABLISHED、TIME_WAIT等)
二、关键性能指标解读¶
1. CPU指标¶
- 负载平均值:超过CPU核心数时系统卡顿(如4核CPU,1分钟负载>4需警惕)
- CPU使用率:
us过高可能是程序异常,wa过高可能是磁盘IO瓶颈 - 上下文切换:频繁切换进程(
vmstat工具cs参数)会消耗CPU
2. 内存指标¶
- 内存使用率:
used/total建议不超过80%,否则需扩容 - Swap使用率:持续使用Swap(
free中swap used非0)说明内存不足 - 缓存释放:
echo 3 > /proc/sys/vm/drop_caches可释放缓存(需谨慎)
3. 磁盘指标¶
- 分区使用率:
df -h中Use%接近100%时需清理大文件 - IO性能:
iostat中%util持续>80%或wa持续>20%,需优化磁盘
4. 网络指标¶
- 吞吐量:
iftop查看实时网络流量,避免带宽超限 - 连接数:
ss -s检查ESTABLISHED连接数,过多TIME_WAIT需排查连接释放问题
三、实际场景示例:系统变慢了怎么办?¶
假设系统卡顿,排查步骤:
1. top:看负载和CPU(wa 高→磁盘IO问题,us 高→高CPU进程)
2. free -h:内存不足时清理缓存或释放大文件
3. df -h:磁盘满时用 du -sh 定位大目录(如日志、备份文件)
4. ss -tuln:检查异常端口,确认无恶意进程或连接
总结¶
Linux系统监控的核心是掌握工具(ps、top、df、iostat)和指标(CPU、内存、磁盘、网络),通过“观察-分析-优化”循环保障系统稳定。建议初学者从日常操作开始练习(如定期用 df -h 检查磁盘),结合实际问题逐步深入,最终能快速定位系统瓶颈。