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命令

topps 更动态,能实时刷新系统状态,像一个“动态仪表盘”。直接执行 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

htoptop 的增强版,支持鼠标操作和进程树展示,适合更直观地管理进程。安装后执行:

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

当系统提示“磁盘空间不足”时,dfdu 是关键工具:
- 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

当网络异常(如端口被占用、连接数过多),用 ssnetstat 排查:
- 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(freeswap used 非0)说明内存不足
  • 缓存释放echo 3 > /proc/sys/vm/drop_caches 可释放缓存(需谨慎)

3. 磁盘指标

  • 分区使用率df -hUse% 接近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系统监控的核心是掌握工具(pstopdfiostat)和指标(CPU、内存、磁盘、网络),通过“观察-分析-优化”循环保障系统稳定。建议初学者从日常操作开始练习(如定期用 df -h 检查磁盘),结合实际问题逐步深入,最终能快速定位系统瓶颈。

小夜