Linux 系统资源查看命令大全

在 Linux 运维、开发或日常使用中,快速掌握系统资源状态是必备技能 ------ 无论是排查性能瓶颈、监控服务稳定性,还是定位故障原因,都离不开核心资源查看命令。本文将系统梳理 CPU、内存、磁盘、网络四大资源的常用命令,结合实例解析和实战技巧,帮你高效搞定 Linux 资源监控。

一、CPU 资源查看:精准掌握处理器状态

CPU 是系统运算核心,查看其使用率、进程占用、负载情况,能快速判断是否存在 "CPU 瓶颈"。

1. top:实时监控 CPU 与进程(最常用)

top 是 Linux 自带的实时系统监控工具,默认每 3 秒刷新一次,核心展示 CPU、内存使用情况及进程排名。

基本用法:
sh 复制代码
top  # 启动实时监控
核心输出解析:
  • 第一行(系统信息):top - 10:23:45 up 2 days, 3:15, 2 users, load average: 0.85, 0.92, 0.78

    • load average: 0.85, 0.92, 0.78:1 分钟、5 分钟、15 分钟系统负载(关键指标)。对于单核 CPU,负载≤1 表示正常;多核 CPU 可按 "核心数 ×1" 判断(如 4 核 CPU 负载≤4 正常)。
  • 第三行(CPU 使用率):%Cpu(s): 15.0 us, 5.0 sy, 0.0 ni, 78.5 id, 1.0 wa, 0.0 hi, 0.5 si, 0.0 st

    • us:用户空间程序占用 CPU 百分比(如应用程序);

    • sy:内核空间占用 CPU 百分比(如系统调用);

    • id:空闲 CPU 百分比(越低表示 CPU 越繁忙);

    • wa:等待 IO(磁盘 / 网络)的 CPU 时间百分比(过高可能是 IO 瓶颈)。

实用快捷键:
  • P:按 CPU 使用率降序排序进程;

  • M:按内存使用率降序排序;

  • q:退出监控;

  • 1:显示所有 CPU 核心的独立使用率(多核机器必备)。

2. mpstat:查看多核 CPU 详细状态

top 适合整体监控,mpstat 更擅长展示单个 CPU 核心的使用率,排查 "某核心过载" 问题。

基本用法:
sh 复制代码
mpstat  # 查看所有CPU平均状态

mpstat -P ALL  # 查看每个CPU核心的详细状态

mpstat 1 5  # 每1秒刷新一次,共输出5次(适合实时跟踪)
核心输出解析:
复制代码
CPU    %usr   %nice    %sys %iowait    %irq   %soft  %steal  %guest  %gnice   %idle

all   12.35    0.00    4.65    1.20    0.00    0.30    0.00    0.00    0.00   81.50

0     15.20    0.00    5.10    1.30    0.00    0.40    0.00    0.00    0.00   78.00

1     10.50    0.00    4.20    1.10    0.00    0.20    0.00    0.00    0.00   84.00
  • 重点关注 %idle(空闲率):若某核心 %idle 持续低于 10%,可能是该核心被进程占用过高。

3. ps:查看进程 CPU 占用(非实时)

ps 用于列出当前进程,搭配参数可筛选 CPU 使用率最高的进程,适合快速定位 "CPU 杀手"。

实用命令:
sh 复制代码
ps aux --sort=-%cpu | head -10  # 按CPU使用率降序,显示前10个进程
  • aux:显示所有用户(a)、包含无终端进程(x)、详细格式(u);

  • --sort=-%cpu:按 CPU 使用率倒序排列(- 表示降序);

  • head -10:只显示前 10 条结果。

二、内存资源查看

1. free

free 简洁展示物理内存、交换分区(Swap)的使用情况,建议搭配 -h 参数(人性化单位)。

基本用法:
sh 复制代码
free -h  # 以KB/MB/GB显示
核心输出解析:
复制代码
              total        used        free      shared  buff/cache   available
Mem:           15Gi       3.2Gi       8.5Gi       256Mi       3.8Gi        11Gi
Swap:          19Gi          0B        19Gi
  • total:总内存;

  • used:已使用内存(含进程占用、缓存、缓冲区);

  • free:完全空闲的内存;

  • available:实际可分配给新进程的内存(关键指标,含空闲内存 + 可回收缓存);

  • Swap:交换分区(当物理内存不足时,系统会将部分数据写入 Swap,性能较低)。

2. top/ps:查看进程内存占用

与 CPU 监控一致,top 和 ps 同样可查看进程内存占用,核心关注两个指标:

  • RES(Resident Set Size):进程实际占用的物理内存(不含 Swap);

  • VIRT(Virtual Memory):进程虚拟内存(含物理内存 + Swap + 共享库)。

sh 复制代码
# 用top查看进程内存(按M排序)
top -o %MEM  # 按内存使用率降序

# 用ps查看内存占用前10的进程
ps aux --sort=-%mem | head -10

3. vmstat:监控内存与虚拟内存交互

vmstat 可查看内存、Swap、IO 的交互状态,适合排查 "内存泄漏" 或 "Swap 过度使用" 问题。

基本用法:
sh 复制代码
vmstat 1 5  # 每1秒刷新一次,共5次
核心输出解析:
复制代码
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
 2  0      0 8945216  51232 4023456    0    0    12    28  123  345 12  5 81  2  0
  • si(swap in):从 Swap 读入物理内存的数据量(持续非 0 表示物理内存不足);

  • so(swap out):从物理内存写入 Swap 的数据量(持续非 0 需警惕内存瓶颈)。

三、磁盘资源查看

磁盘是数据存储核心,需关注两个维度:存储空间使用 (是否满了)和IO 性能(读写速度、繁忙程度)。

1. df:查看磁盘分区存储空间

df 用于显示磁盘分区的总容量、已用空间、剩余空间及挂载点,搭配 -h(人性化单位)和 -T(显示文件系统类型)更实用。

基本用法:
sh 复制代码
df -hT  # 显示文件系统类型+人性化单位
核心输出解析:
复制代码
Filesystem     Type      Size  Used Avail Use% Mounted on
/dev/sda1      ext4      500G   89G  376G  19% /
/dev/sdb1      xfs       2.0T  580G  1.4T  30% /data
tmpfs          tmpfs     7.8G     0  7.8G   0% /dev/shm
  • 重点关注 Use%(使用率):若某分区使用率≥90%,需及时清理文件(如日志、临时文件),避免磁盘满导致服务异常。

2. du:查看目录 / 文件占用空间

df 查看分区整体占用,du 则精准定位 "哪个目录 / 文件占空间最大",适合清理磁盘时使用。

sh 复制代码
# 查看当前目录下所有子目录的占用空间(按大小排序)
du -sh * | sort -rh

# 查看/data目录下占用前10的文件/目录(递归)
du -ah /data | sort -rh | head -10
  • du -sh *:s 显示总大小,h 人性化单位,* 匹配当前目录所有子项;

  • sort -rh:r 降序,h 按人性化单位排序(如 10G、2G、500M)。

3. iostat:监控磁盘 IO 性能

磁盘 IO 繁忙或读写速度慢,会导致程序卡顿(如数据库查询超时),iostat 可查看磁盘 IO 使用率、读写速度等指标。

基本用法:
sh 复制代码
iostat -x 1 5  # 每1秒刷新一次,共5次,显示详细IO指标
核心输出解析:
复制代码
Device            rMB/s    wMB/s   rrqm/s   wrqm/s     %util
sda               2.30     8.50      0.00      0.00     12.5
sdb               0.50     3.20      0.00      0.00      4.8
  • %util(IO 使用率):关键指标,若持续≥80% 表示磁盘 IO 繁忙(如机械硬盘读写频繁);

  • rMB/s/wMB/s:每秒读写数据量(MB),可判断磁盘读写压力。

四、网络资源查看:排查网络连通与带宽问题

网络问题(如端口占用、带宽耗尽、连接异常)是服务访问失败的常见原因,以下命令覆盖网络状态、端口、带宽监控。

1. netstat:查看网络连接与端口

netstat 用于列出网络连接、端口监听、路由表等信息,适合快速排查 "端口被占用""异常连接"。

sh 复制代码
# 查看所有监听端口(TCP+UDP)
netstat -tuln

# 查看某端口(如8080)的占用进程
netstat -tulnp | grep 8080

# 查看所有已建立的TCP连接
netstat -an | grep ESTABLISHED
  • 参数说明:

    • t:TCP 协议;u:UDP 协议;l:监听状态;n:显示 IP + 端口(不解析域名);p:显示占用进程 PID 和名称。

2. ss:替代 netstat 的高效工具

ss 是 Linux 较新的网络工具,功能与 netstat 类似,但速度更快、支持更多参数,适合大并发场景。

sh 复制代码
# 查看所有监听端口(比netstat更快)
ss -tuln

# 查看80端口的连接数
ss -t state established '(dst :80 or src :80)' | wc -l

# 查看进程对应的端口(需root权限)
ss -tulnp | grep java

3. iftop:实时监控网络带宽

iftop 是实时带宽监控工具,能显示各网络连接的上行 / 下行速率,适合排查 "带宽被占满" 问题(需先安装:yum install iftop 或 apt install iftop)。

基本用法:
sh 复制代码
iftop  # 启动实时监控
核心输出解析:
  • 顶部显示网络接口(如 eth0)的总上行 / 下行速率;

  • 中间列表显示各连接的源 IP、目标 IP、实时速率;

  • 底部显示累计流量统计。

快捷键:
  • s:切换显示源 IP;

  • d:切换显示目标 IP;

  • q:退出监控。

五、组合命令高效排查问题

单一命令只能查看局部状态,组合使用能快速定位故障

1、服务卡顿,排查 CPU 瓶颈

sh 复制代码
# 1. 查看CPU整体负载和进程占用
top -o %CPU

# 2. 若负载高,查看多核CPU是否均衡
mpstat -P ALL 1

# 3. 定位占用CPU最高的进程(并查看其线程)
ps aux --sort=-%cpu | head -5
pstree -p 进程PID  # 查看进程的线程树

2、内存不足,服务崩溃

sh 复制代码
# 1. 查看内存整体使用
free -h

# 2. 定位占用内存最高的进程
ps aux --sort=-%mem | head -10

# 3. 查看进程的详细内存使用(如Java进程)
jmap -heap 进程PID  # 需安装JDK

3、网络不通,端口无法访问

sh 复制代码
# 1. 查看端口是否监听
netstat -tulnp | grep 目标端口(如8080)

# 2. 若未监听,检查服务是否启动;若已监听,查看防火墙是否放行
firewall-cmd --list-ports  # CentOS防火墙
ufw status  # Ubuntu防火墙

# 3. 测试网络连通性(本地/远程)
telnet 目标IP 目标端口
ping 目标IP  # 测试网络可达性
相关推荐
数字新视界12 分钟前
动环监控信创适配在智能机房管理中的应用价值与未来展望
大数据·服务器·数据库·动环监控系统·动力与环境监控系统
爱和冰阔落16 分钟前
【Linux网络】TCP 服务器如何并发处理多个客户端?从 fork、僵尸进程到双重 fork
linux·运维·服务器·网络
程序员沉梦听雨18 分钟前
WSL2的安装与使用
linux·wsl
微小的鱼29 分钟前
Linux的渲染与显示系统链路
android·java·linux
lisanmengmeng1 小时前
alertmanger 标签 rules 打上分组标签
linux·运维·服务器
Android系统攻城狮2 小时前
Linux FFmpeg深度解析之av_write_frame调用流程与实战(三十三)
linux·运维·服务器·ffmpeg·音视频进阶·ffmpeg音视频
上火的金鱼妹2 小时前
k8s生产实际问题排查(网关,数据库读写等)
运维·服务器
孙克旭_2 小时前
k8s基础组件与创建资源
运维·docker·容器·kubernetes
孙克旭_2 小时前
云原生基础之Containerd容器运行时
运维·云原生
分布式存储与RustFS2 小时前
RustFS 自建对象存储实战目录:110 篇按场景分类(持续更新)
运维·云原生·开源·对象存储·分布式存储·s3·性能基准