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 监控一致,topps 同样可查看进程内存占用,核心关注两个指标:

  • 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 -rhr 降序,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 iftopapt 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  # 测试网络可达性
相关推荐
全栈游侠1 小时前
DRM驱动分析01 - 初始化
linux
qq_401700411 小时前
TCP 多客户端与服务器通信程序
运维·服务器
宠..1 小时前
VS Code SSH 远程连接 Ubuntu 并实现快速运行(C/C++示例)
java·运维·c语言·开发语言·c++·ubuntu·ssh
量子罐头1 小时前
国产鲲鹏服务器适配:光润通 100GbE 网卡性能实测报告
运维·服务器
WPF工业上位机1 小时前
匠心研智造-上位机硬件通讯之Modbus 服务器
运维·服务器
Harm灬小海1 小时前
【云计算学习之路】学习Centos7系统:Linux进程管理
linux·运维·服务器·学习·云计算
赋创小助手1 小时前
AMD EPYC 8005系列发布:面向高密度单路服务器市场的新补充
运维·服务器
持梦远方1 小时前
Nginx 静态资源挂载与前端部署实战笔记
linux·前端·笔记·nginx
咖喱o1 小时前
VRRP
运维·网络·智能路由器