当前位置:首页>Linux>Linux 从入门到进阶13:Linux系统状态监测

Linux 从入门到进阶13:Linux系统状态监测

  • 2026-10-11 05:53:29
Linux 从入门到进阶13:Linux系统状态监测

系统状态的监测核心是围绕进程、硬件资源、系统负载展开。熟练掌握系统状态查看命令,是Linux运维、服务部署、故障排查的核心基础技能。

一、Linux系统状态监测

系统状态主要包含系统负载、内存、CPU、磁盘、运行时长、用户连接等核心指标,通过专属命令可快速获取系统整体运行状态,提前预判资源瓶颈。

系统基础状态查询

1、查看系统内核信息

用于获取Linux内核版本、系统架构、主机名等基础系统信息,常用于环境核对。

uname -a

功能:查看完整内核信息

执行命令:

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

功能:仅查看内核版本

执行命令:

uname -r

示例输出:

5.15.0-78-generic

输出字段详细解析:

字段内容

含义说明

5.15.0-78-generic

内核版本号

uname -m

功能:查看系统架构

执行命令:

uname -m

示例输出:

x86_64

输出字段详细解析:

字段内容

含义说明

x86_64

CPU 硬件架构

2、uptime 查看系统运行负载

显示系统开机时长、当前在线用户、1分钟、5分钟、15分钟系统平均负载,是判断系统繁忙程度的核心命令。

执行命令:

uptime

示例输出:

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命令查看当前登录系统的用户。

执行命令:

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;本地登录不显示该字段

系统当前存在两个登录会话:

  • root 用户在服务器本机登录;

  • admin 用户从内网 `192.168.1.105` 通过远程 SSH 登录。

二、硬件资源状态监测

1.内存状态查看

free命令用于查看系统物理内存,交换分区(swap)的使用情况,默认以KB为单,添加-h参数自适应单位(GB、MB),直观易读。

执行命令:

free -h

输出示例:

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),直观易读。

执行命令:

df -h

示例输出:

文件系统大小已用可用 已用% 挂载点

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

示例输出

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监控程序。

最新文章

随机文章