在Linux服务器的日常运维中,系统监控是确保服务稳定运行的关键。就像医生需要定期体检一样,服务器也需要定期“体检”,通过监控工具及时发现CPU、内存、磁盘等资源的使用情况,避免因资源不足导致服务卡顿或宕机。本文将介绍几个初学者必备的Linux性能监控工具,让你快速掌握服务器“健康状况”的查看方法。

一、top:实时监控系统性能与进程

用途top是最常用的实时监控工具,能动态显示系统的CPU、内存、进程等资源使用情况,方便快速定位“吃资源”的进程。
基本命令:直接在终端输入 top,按 q 退出。
关键信息解读
- 第一行:系统时间、运行时长、登录用户数、负载情况(load average,若超过CPU核心数,可能CPU过载)。
- 第二行(Tasks):总进程数、运行中进程数、睡眠进程数、停止进程数、僵尸进程数。
- 第三行(%Cpu(s)):CPU使用率,常见指标:
- us:用户进程占用CPU时间(正常应低于70%,过高可能有恶意进程);
- sy:系统内核占用CPU时间(若持续过高,需检查内核或系统调用频繁的程序);
- id:空闲CPU时间(越高越好,接近100%表示CPU负载低);
- wa:IO等待时间(若wa > 20%,可能磁盘IO慢,需优化存储)。
- 第四行(KiB Mem):内存使用情况,total(总内存)、used(已用)、free(空闲)、buff/cache(缓存和缓冲区,系统可直接使用)。
- 第五行(KiB Swap):交换分区(当内存不足时,系统会将部分数据临时写入磁盘,swap使用率过高会严重影响性能)。
- 下方进程列表:按 P 排序CPU使用率,M 排序内存使用率,可快速找到占用资源高的进程。

二、vmstat:系统整体性能分析

用途vmstat(Virtual Memory Statistics)能更全面地反映系统的整体性能,包括进程调度、内存交换、IO等信息。
基本命令vmstat 1(1秒刷新一次,按Ctrl+C退出)。
关键列解读
- r:等待运行的进程数(若r > CPU核心数,说明CPU处理不过来,需优化或增加CPU);
- b:不可中断睡眠的进程数(若b > 0,可能进程在等待IO,如磁盘读写);
- swpd:已使用的交换分区大小(若swpd > 0且持续增加,内存可能不足);
- free:空闲内存(包括未使用的内存和缓存);
- si/so:交换分区读写速率(si表示从磁盘读入内存,so表示内存数据写入磁盘,两者持续不为0说明内存严重不足);
- bi/bo:块设备IO速率(bi表示从磁盘读入内存,bo表示内存数据写入磁盘,过高可能磁盘IO瓶颈)。

三、iostat:磁盘IO性能监控

用途iostat(Input/Output Statistics)专门用于监控磁盘的读写速度、IO请求频率等,帮助判断磁盘是否成为性能瓶颈。
基本命令iostat -x 1-x显示详细IO指标,1秒刷新一次)。
关键列解读
- tps:每秒IO请求数(tps越高,磁盘压力越大);
- kB_read/s/kB_wrtn/s:每秒读/写的数据量(单位:KB);
- %util:磁盘设备的利用率(若%util接近100%,磁盘忙不过来,需检查是否有大量写入操作);
- await:IO请求的平均响应时间(单位:毫秒,越高说明磁盘读写慢,如机械硬盘可能在20ms以上)。

四、free:快速查看内存使用

用途free用于快速查看内存总容量、已用、空闲及缓存情况,适合快速判断内存是否足够。
基本命令free -h-h参数将单位自动转为KB/MB/GB,更易读)。
关键信息
- total:总内存(物理内存+交换分区);
- used:已用内存(包括进程占用和缓存);
- free:空闲内存(未被使用的物理内存);
- available:系统可用内存(free + buff/cache的一部分,实际可分配给新进程的内存)。
注意:若available持续低,可能内存紧张,需排查是否有内存泄漏或高内存占用进程。

五、dfdu:磁盘空间监控

用途
- df:查看磁盘分区的总容量、已用空间和使用率(避免磁盘占满导致服务无法写入);
- du:查看目录或文件的大小(定位大文件或目录,释放空间)。

df命令df -h(按分区显示,-h单位自动转换)。
- Filesystem:分区设备名(如/dev/sda1);
- Size:分区总容量;
- Used:已用空间;
- Avail:可用空间;
- Use%:使用率(超过85%需清理,如日志文件、临时文件等)。

du命令du -sh [目录](如du -sh /var/log,查看日志目录大小)。
- -s:仅显示汇总大小;
- -h:人类可读单位(如KB/MB/GB);
- 若需查看子目录,可加--max-depth=1(仅看一级子目录)。

六、如何选择工具?

  • 快速概览系统:用top(实时、直观);
  • 检查内存是否紧张:用free -h(简单看可用内存);
  • 排查磁盘IO瓶颈:用iostat -x 1(看%utilawait);
  • 检查磁盘空间:用df -h(定位满盘分区);
  • 定位大文件:用du -sh [目录](逐步缩小到具体文件)。

总结

以上工具是Linux服务器监控的基础,初学者不必记住所有参数和细节,先掌握核心命令和关键指标,日常运维中按需使用即可。例如:发现服务卡顿,先用top看CPU和内存是否超高;内存不足,用free确认是否需要加内存或清理缓存;磁盘读写慢,用iostat检查是否IO饱和。多实践几次,你就能快速判断服务器“健康状况”,让服务稳定运行~

小夜