
技术弄巷
前言
在Linux系统运维中,快速掌握CPU、内存、硬盘、网卡等核心组件的运行状态,是排查性能问题、保障系统稳定的基础。本文整理了系统整体状态、CPU、内存、硬盘、网卡五大维度的核心查看命令,聚焦实用操作与关键输出解读,命令格式规整且附带核心注释,便于快速查阅和使用。
一、系统整体运行状态(top 核心命令)
top是Linux动态实时查看系统运行状态的核心命令,可同时监控CPU、内存、进程等关键信息,终端输入后实时刷新(按q退出)。
[root@localhost ~]# top # 动态监控系统运行状态,按q退出# 核心输出解读(仅展示关键行,按列对齐)top - 13:51:58 up 4:45, 2 users, load average: 0.00, 0.01, 0.05 # 系统整体状态Tasks: 124 total, 1 running, 123 sleeping, 0 stopped, 0 zombie # 进程状态%Cpu(s): 1.4 us, 0.0 sy, 0.0 ni, 98.6 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st # CPU使用率KiB Mem : 995924 total, 690372 free, 110360 used, 195192 buff/cache # 物理内存KiB Swap: 2097148 total, 2097148 free, 0 used. 707544 avail Mem # 交换分区
关键输出注释
- 系统负载:
load average: 0.00, 0.01, 0.05→ 最近1/5/15分钟系统平均负载,该值不长期超过CPU核心数即为负载正常; - CPU空闲率:
%Cpu(s)中id列 → 98.6表示CPU空闲98.6%,数值越低CPU越繁忙; - 内存可用:
avail Mem→ 实际可分配给新进程的内存大小,比free列更具参考性; - 进程状态:
zombie为僵尸进程,需关注数值是否为0,非0则需清理。
补充:快速查看系统负载(uptime)
无需进入top交互界面,快速获取系统运行时间+平均负载:
[root@localhost ~]# uptime# 快速查看系统负载,输出与top第一行一致 13:58:08 up 4:52, 2 users, load average: 0.00, 0.02, 0.05
二、CPU 状态监控
1. 查看CPU硬件信息(lscpu)
获取CPU架构、核心数、型号等静态硬件信息,核心数是判断系统负载的重要依据:
[root@localhost ~]# lscpu # 查看CPU硬件详情,关键输出如下Architecture: x86_64 # CPU架构(64位)CPU(s): 4 # 总逻辑CPU核心数Core(s) per socket: 2 # 每个CPU插槽的物理核心数Socket(s): 2 # CPU插槽数Model name: Intel(R) Core(TM) i7-10510U CPU @ 1.80GHz # CPU型号
2. 查看CPU整体使用率(mpstat)
mpstat可定时采样CPU使用率,比top更适合统计一段时间的平均状态,格式:mpstat 采样间隔 采样次数
[root@localhost ~]# mpstat 2 4 # 每2秒采样1次,共采样4次,输出CPU平均使用率Linux 3.10.0-957.el7.x86_64 (localhost.localdomain) 07/22/2022 _x86_64_ (4 CPU)03:16:03 PM CPU %usr %sys %iowait %idle # 核心列:用户态|内核态|IO等待|空闲03:16:05 PM all 0.00 0.12 0.00 99.88 # all表示所有CPU,可指定核心(如mpstat -P 0 2 4查看0号CPU)03:16:07 PM all 0.00 0.00 0.00 100.00
关键注释
%iowait:IO等待占比,数值过高表示硬盘IO瓶颈导致CPU等待;
三、内存 状态监控
1. 查看内存容量(free -m)
free查看内存使用情况,-m以MB为单位(更易读),-g为GB单位,核心关注可用内存:
[root@localhost ~]# free -m # 以MB为单位查看内存/交换分区使用情况 total used free shared buff/cache availableMem: 972 107 574 7 291 690 # 物理内存Swap: 2047 0 2047 # 交换分区(虚拟内存)
关键注释
buff/cache:缓存/缓冲区,系统自动利用空闲内存做缓存,可释放给进程使用,并非实际占用;available:物理内存实际可用大小,核心参考指标,无需关注free列的原始空闲值;Swap:交换分区使用率若长期>0,说明物理内存不足,需扩容。
2. 动态查看内存IO(vmstat)
vmstat监控内存、进程、CPU、IO的综合状态,格式:vmstat 采样间隔 采样次数,无采样次数则持续输出:
[root@localhost ~]# vmstat 2 4 # 每2秒采样1次,共4次,聚焦内存与IOprocs -----------memory---------- ---swap-- -----io---- -system-- ------cpu----- r b swpd free buff cache si so bi bo in cs us sy id wa st 1 0 0 587852 2108 295912 0 0 3 0 9 13 0 0 100 0 0
核心列注释
swpdsi/so:从交换分区读/写内存的大小,均为0表示内存无交换,性能正常;bi/bo
四、硬盘 状态监控
1. 查看硬盘容量与挂载点(df -hT)
df查看文件系统磁盘使用情况,-h人类可读单位(G/M),-T显示文件系统类型,核心关注使用率%Use:
[root@localhost ~]# df -hT # 查看硬盘容量、挂载点、文件系统类型,-h易读化,-T显示文件系统
2. 查看硬盘inode使用(df -i)
Linux中文件由inode标识,与磁盘容量相互独立,df -i查看inode使用情况,inode占满后即使硬盘有空间也无法创建文件:
[root@localhost ~]# df -i # 查看inode使用情况,关键关注%Iused(inode使用率)
3. 查看磁盘IO性能(iostat)
iostat聚焦硬盘IO读写,排查硬盘瓶颈,格式:iostat 采样间隔 采样次数,核心关注磁盘读写速率和IO等待:
[root@localhost ~]# iostat 1 3 # 每1秒采样1次,共3次,查看磁盘IOLinux 3.10.0-957.el7.x86_64 (localhost.localdomain) 07/22/2022 _x86_64_ (4 CPU)avg-cpu: %user %nice %system %iowait %steal %idle # CPU层面IO等待 0.02 0.00 0.03 0.00 0.00 99.95Device: tps kB_read/s kB_wrtn/s kB_read kB_wrtn # 磁盘设备IOsda 0.40 10.97 1.13 258438 26525
关键注释
%iowait:CPU等待硬盘IO的时间占比,数值过高(如>10)表示硬盘IO存在瓶颈;tpskB_read/s/kB_wrtn/s
五、网卡 流量/IO监控(sar -n DEV)
sar是Linux系统活动报告工具,-n DEV专门监控网卡流量,格式:sar -n DEV 采样间隔 采样次数,无次数则持续输出:
[root@localhost ~]# sar -n DEV 2 # 每2秒采样1次,监控网卡实时流量,按Ctrl+C退出03:47:39 PM IFACE rxpck/s txpck/s rxkB/s txkB/s # 核心列03:47:40 PM lo 0.00 0.00 0.00 0.00 # 本地回环网卡,忽略03:47:40 PM ens33 7.89 10.53 0.58 1.79 # 物理网卡,核心关注
关键列注释(核心关注物理网卡,如ens33/eth0/ens192)
rxpck/stxpck/srxkB/stxkB/s- 数值突然飙升表示网卡流量异常,需排查网络请求或攻击。
总结
- 系统整体状态用
top(动态)/uptime(快速负载),核心看平均负载和CPU/内存空闲率; - CPU关注核心数(lscpu)、使用率(mpstat)、负载(uptime),负载不超核心数即为正常;
- 内存核心看
free -m的available列,vmstat的swpd/si/so判断是否内存不足; - 硬盘关注
df -hT的容量、df -i的inode、iostat的IO读写和%iowait; - 网卡流量用
sar -n DEV,聚焦物理网卡的rxkB/s(入站)和txkB/s(出站)。

