系统状态的监测核心是围绕进程、硬件资源、系统负载展开。熟练掌握系统状态查看命令,是Linux运维、服务部署、故障排查的核心基础技能。
一、Linux系统状态监测
系统状态主要包含系统负载、内存、CPU、磁盘、运行时长、用户连接等核心指标,通过专属命令可快速获取系统整体运行状态,提前预判资源瓶颈。
系统基础状态查询
1、查看系统内核信息
用于获取Linux内核版本、系统架构、主机名等基础系统信息,常用于环境核对。
uname -a
功能:查看完整内核信息
执行命令:
示例输出:
Linux localhost 5.15.0-78-generic #85-Ubuntu SMP Fri Jul 7 15:25:09 UTC 2023 x86\_64 x86\_64 x86\_64 GNU/Linux
输出字段详细解析:
字段内容 | 含义说明 |
Linux | 操作系统内核名称 |
localhost | 主机名 |
5.15.0-78-generic | 内核版本号 |
#85-Ubuntu SMP | 编译序号,SMP 代表支持多核 CPU |
Fri Jul 7 15:25:09 UTC 2023 | 内核编译时间 |
第一个 x86_64 | CPU 硬件架构 |
第二个 x86_64 | 二进制执行架构 |
第三个 x86_64 | 操作系统编译架构 |
GNU/Linux | 系统类型 |
uname -r
功能:仅查看内核版本
执行命令:
示例输出:
输出字段详细解析:
字段内容 | 含义说明 |
5.15.0-78-generic | 内核版本号 |
uname -m
功能:查看系统架构
执行命令:
示例输出:
输出字段详细解析:
2、uptime 查看系统运行负载
显示系统开机时长、当前在线用户、1分钟、5分钟、15分钟系统平均负载,是判断系统繁忙程度的核心命令。
执行命令:
示例输出:
14:01:24 up 1 min, 1 user, load average: 1.37, 0.51, 0.18
输出字段详细解析:
输出字段 | 含义说明 |
14:01:24 | 系统当前时间 |
up 1 min | 系统开机运行时长:1 分钟 |
1 user | 当前在线登录用户总数 |
1.37 | 最近 1 分钟系统平均负载 |
0.51 | 最近 5 分钟系统平均负载 |
0.18 | 最近 15 分钟系统平均负载 |
平均负载:等待运行的进程队列长度,包含 CPU 进程 + 不可中断阻塞进程(磁盘 IO 等待)
单核 CPU:负载≈1 代表 CPU 满载;
N 核 CPU:负载≈N 代表 CPU 满载;
例:4 核服务器,平均负载接近 4 表示 CPU 打满,长期高于 4 说明存在排队拥堵。
一般来说,单核CPU负载值≤1为正常,多核CPU负载值不超过核心数即为健康;若15分钟负载持续过高,说明系统资源紧张。
3.查看用户登录状态
who命令查看当前登录系统的用户;w命令更详细,可查看用户登录终端、登录时间、正在执行的进程及系统负载。
who
功能:who命令查看当前登录系统的用户。
执行命令:
示例输出
root tty1 2026-07-24 09:15admin pts/0 2026-07-24 10:01 (192.168.1.105)
输出字段详细解析:
输出字段 | 含义说明 |
root / admin | 当前登录系统的用户名 |
tty1 | 本地物理终端,显示器键盘直连服务器登录 |
pts/0 | 伪终端,SSH 远程登录使用的虚拟终端 |
2026-07-24 09:15 | 用户登录系统的时间 |
(192.168.1.105) | 远程登录客户端 IP;本地登录不显示该字段 |
系统当前存在两个登录会话:
二、硬件资源状态监测
1.内存状态查看
free命令用于查看系统物理内存,交换分区(swap)的使用情况,默认以KB为单,添加-h参数自适应单位(GB、MB),直观易读。
执行命令:
输出示例:
totalusedfreeshared cacheavailable
内存:3.8Gi1.3Gi445Mi34Mi2.4Gi2.5Gi
交换:3.6Gi0B3.6Gi
输出字段详细解析:
字段 | 数值 | 含义说明 |
total | 3.8Gi | 整机物理内存总量 |
used | 1.3Gi | 进程正在占用内存 |
free | 445Mi | 完全闲置的裸内存 |
shared | 34Mi | 多进程共享内存 |
buff/cache | 2.4Gi | 文件缓冲与磁盘缓存(可回收) |
available | 2.5Gi | 可供新程序使用的预估内存 |
Swap total | 3.6Gi | 交换分区总大小 |
Swap used | 0B | 已使用交换空间 |
Swap free | 3.6Gi | 空闲交换分区 |
交换区是操作系统从硬盘上划分出的一块空间,充当虚拟内存。当系统物理内存不够存放所有运行程序数据时,Linux 会把暂时不活跃、暂时不用的数据,从物理内存挪到硬盘 Swap;等程序再次需要时,再读回内存。
因为虚拟内存是从硬盘划分出来的空间,CPU访问硬盘的速度远远低于访问内存的速度,因此频繁使用 Swap 会明显降低计算机工作性能。
结合刚才free命令输出的内容,硬盘划分了 3.6GB 空间作为交换区,当前完全没有用到交换分区,说明当前物理内存充足,系统不需要把数据挪到硬盘。
2.硬盘状态查看
df和du命令都可以查看硬盘状态,df用于查看整体磁盘分区使用率,du用于查看指定文件或目录占用的磁盘空间。
df命令
df默认显示的单位是KB,添加-h参数可以自适应单位(GB、MB),直观易读。
执行命令:
示例输出:
文件系统大小已用可用 已用% 挂载点
tmpfs387M2.2M385M1% /run
/dev/sda220G17G1.8G91% /
tmpfs1.9G01.9G0% /dev/shm
tmpfs5.0M8.0K5.0M1% /run/lock
tmpfs387M136K387M1% /run/user/1000
输出字段详细解析:
列名 | 解释 |
文件系统 | 存储设备/虚拟文件系统名称 |
大小 | 文件系统总容量 |
已用 | 已经占用空间 |
可用 | 剩余空闲空间 |
已用 % | 空间占用百分比 |
挂载点 | 在系统中访问该磁盘的目录入口 |
dev/sda2:指服务器第一块硬盘 sda 的 2 号分区
挂载点/:Linux 根目录,整个操作系统、所有程序、数据都存放在这里
总容量20G,已使用 17G,剩余仅 1.8G,占用率91%
从数据上看,当前磁盘状态根分区使用率过高,持续上涨很容易触发磁盘爆满,磁盘 100% 占满后,将无法新建文件、日志写失败、服务崩溃、系统卡死。
du命令
du用于查看指定文件或目录占用的磁盘空间。
基础语法
du [选项] [目录/文件名]
du命令常用参数表
参数 | 作用 |
-h | human,人性化单位显示(K/M/G) |
-s | summary,只显示总和,不逐层列出子目录 |
-sh | 组合!最常用:只汇总总大小 + 友好单位 |
-a | 同时统计目录 + 所有文件 |
--max-depth=N | 限制显示层级,N=1 只看一级子目录 |
示例1
# 统计/var/log目录大小du -sh /var/log# 输出2G /var/log
示例2
# 查看一级子目录大小(排查哪个文件夹最大)du -h --max-depth=1# 输出16G /usr2.3G /var128M /boot...
3、实时资源监控
top命令用于动态刷新和展示系统全局资源状态,以及所有进程的 CPU、内存资源占用情况,通过top命令可以实现:
1. 查看系统整体负载、CPU、内存、交换分区使用状态;
2. 快速定位消耗 CPU / 内存最多的进程;
3. 观察进程运行状态、PID、运行用户。
执行命令
示例输出

top 命令输出内容分为两部分进行解读。
第1部分:系统全局状态
查看整机全局资源(CPU、内存、进程总数)
第1行:任务进程统计
286 total, 1 running, 285 sleeping, 0 stopped, 0 zombie
1. 286 total:系统一共有286 个进程。
2. 1 running:1 个进程正在 CPU 上运行。
3. 285 sleeping:285 个进程处于休眠等待状态(大部分常规程序)。
4. 0 stopped:没有被暂停的进程。
5. 0 zombie:不存在僵尸进程(状态正常)。
第2行:CPU整体占用
%Cpu(s): 2.7 us, 1.5 sy, 0.0 ni, 95.8 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
参数 | 含义 | 当前数值解读 |
us | user:用户进程占用 CPU | 2.7%,普通应用消耗 |
sy | system:内核程序占用 CPU | 1.5% |
ni | nice:调整过优先级的进程 | 0% |
id | idle:空闲 CPU | 95.8%,CPU 非常空闲,压力很低 |
wa | iowait:等待磁盘 IO 消耗 | 0%,没有磁盘阻塞等待 |
hi | 硬件中断 | 0% |
si | 软件中断 | 0% |
st | 虚拟机被宿主机抢占时间 | 0%,无资源抢夺 |
第3行:物理内存占用
MiB Mem : 3867.9 total, 182.6 free, 1391.1 used, 2615.3 buff/cache
1. 3867.9 total:总物理内存 ≈3.8GB
2. 182.6 free:完全空闲裸内存
3. 1391.1 used:程序实际占用内存
4. 2615.3 buff/cache:缓冲区 + 文件缓存
第4行:交换分区 Swap + 可用内存
MiB Swap: 3678.0 total, 3678.0 free, 0.0 used. 2476.7 avail Mem
1. Swap 总大小≈3.6GB
2. 0.0 used:交换分区完全未使用
3. 2476.7 avail Mem:系统预估可分配给新程序的内存约 2.4GB,内存资源充足
第2部分:进程状态
动态显示每一个进程单独资源消耗,定位到底哪个程序造成资源占用过高。
每一列字段说明
字段 | 说明 |
进程号 (PID) | 进程唯一编号 |
USER | 运行进程的操作系统用户 |
PR | 进程优先级 |
NI | Nice 值,调整优先级(负数优先级更高) |
VIRT | 虚拟内存总量 |
RES | 实际占用物理内存(常驻内存) |
SHR | 共享内存大小 |
状态位(S/R/I) | R = 运行中;S = 休眠;I = 空闲内核进程 |
%CPU | 进程占用 CPU 百分比 |
%MEM | 进程占用物理内存百分比 |
TIME+ | 进程累计占用 CPU 总时长 |
COMMAND | 启动进程对应的程序命令 |
示例1
2570 teacher 20 0 3951716 321632 140600 S 6.3 8.1 0:41.12 gnome-shell
1. PID:2570
2. USER:teacher 用户运行
3. PR=20,NI=0 默认优先级
4. VIRT=3951716KiB 申请虚拟内存
5. RES=321632KiB 实际占用物理内存
6. SHR=140600KiB 共享内存
7. %CPU=6.3%,%MEM=8.1%
8. TIME+ 累计占用 CPU 41.12 秒
9. S:休眠状态
10. COMMAND:gnome-shell(图形桌面程序)
示例2
5212 teacher 20 0 23232 6116 3896 R 0.3 0.2 0:01.16 top
状态R:运行中
进程就是当前我们正在执行的top监控程序。