Linux查看系统资源(CPU、内存、磁盘和网络)的常用命令大全

 更新时间:2026年05月21日 14:19:03   作者:曾阿伦  
本文系统介绍了Linux系统中监控CPU、内存、磁盘和网络四大核心资源的常用命令,文章通过具体命令示例和输出解析,希望可以帮助读者快速掌握系统资源监控技巧,为性能优化和故障排查提供实用指导

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

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

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

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

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

基本用法:

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 核心的使用率,排查 “某核心过载” 问题。

基本用法:

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 杀手”。

实用命令:

ps aux --sort=-%cpu | head -10  # 按CPU使用率降序,显示前10个进程
  • aux:显示所有用户(a)、包含无终端进程(x)、详细格式(u);
  • --sort=-%cpu:按 CPU 使用率倒序排列(- 表示降序);
  • head -10:只显示前 10 条结果。

二、内存资源查看

1. free

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

基本用法:

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 + 共享库)。
# 用top查看进程内存(按M排序)
top -o %MEM  # 按内存使用率降序

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

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

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

基本用法:

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(显示文件系统类型)更实用。

基本用法:

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 则精准定位 “哪个目录 / 文件占空间最大”,适合清理磁盘时使用。

# 查看当前目录下所有子目录的占用空间(按大小排序)
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 使用率、读写速度等指标。

基本用法:

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 用于列出网络连接、端口监听、路由表等信息,适合快速排查 “端口被占用”“异常连接”。

# 查看所有监听端口(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 类似,但速度更快、支持更多参数,适合大并发场景。

# 查看所有监听端口(比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)。

基本用法:

iftop  # 启动实时监控

核心输出解析:

  • 顶部显示网络接口(如 eth0)的总上行 / 下行速率;
  • 中间列表显示各连接的源 IP、目标 IP、实时速率;
  • 底部显示累计流量统计。

快捷键:

  • s:切换显示源 IP;
  • d:切换显示目标 IP;
  • q:退出监控。

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

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

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

# 1. 查看CPU整体负载和进程占用
top -o %CPU

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

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

2、内存不足,服务崩溃

# 1. 查看内存整体使用
free -h

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

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

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

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

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

# 3. 测试网络连通性(本地/远程)
telnet 目标IP 目标端口
ping 目标IP  # 测试网络可达性

到此这篇关于Linux查看系统资源(CPU、内存、磁盘和网络)的常用命令大全的文章就介绍到这了,更多相关Linux系统资源查看命令内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Linux进程和计划任务管理方式

    Linux进程和计划任务管理方式

    程序是存储在存储设备上的静态代码,而进程是程序在CPU和内存中动态执行的实体,进程可以有父子关系,查看进程信息的命令包括ps,top,pgrep,jobs,pstree等,用于监控和管理进程状态,ps命令可以显示终端的所有进程
    2024-09-09
  • Linux中各个目录的作用与内容

    Linux中各个目录的作用与内容

    这篇文章介绍了Linux中各个目录的作用与内容,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-06-06
  • linux 后台日志 mysql 错误异常的解释(推荐)

    linux 后台日志 mysql 错误异常的解释(推荐)

    下面小编就为大家带来一篇linux 后台日志 mysql 错误异常的解释(推荐)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-10-10
  • linux中 关于screen 的命令详解

    linux中 关于screen 的命令详解

    本篇文章小编为大家介绍,linux中 关于screen 的命令详解。需要的朋友参考下
    2013-04-04
  • 一篇文章弄懂Linux磁盘和磁盘分区

    一篇文章弄懂Linux磁盘和磁盘分区

    分区是将一个硬盘驱动器分成若干个逻辑驱动器,分区是把硬盘连续的区块当做一个独立的磁硬使用。下面这篇文章主要给大家介绍了关于Linux磁盘和磁盘分区的相关资料,需要的朋友可以参考下
    2018-12-12
  • linux下用csplit命令分割文件的方法示例

    linux下用csplit命令分割文件的方法示例

    csplit命令用于将一个大文件分割成小的碎片,并且将分割后的每个碎片保存成一个文件。下面这篇文章主要跟大家介绍了linux下用csplit命令分割文件的方法示例,对大家具有一定的参考学习价值,需要的朋友们下面来一起看看吧。
    2017-06-06
  • 在APACHE环境下配置下载服务器的注意事项

    在APACHE环境下配置下载服务器的注意事项

    这篇文章主要介绍了在APACHE环境下配置下载服务器的注意事项,需要的朋友可以参考下
    2016-08-08
  • Centos7 下安装python3及卸载的教程

    Centos7 下安装python3及卸载的教程

    这篇文章主要介绍了Centos7 下安装python3及卸载的教程,本文图文并茂给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-10-10
  • 使用Kubeadm在CentOS7.2上部署Kubernetes集群的方法

    使用Kubeadm在CentOS7.2上部署Kubernetes集群的方法

    本篇文章主要介绍了使用Kubeadm在CentOS7.2上部署Kubernetes集群的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-03-03
  • 浅谈Linux进程间通信方式及优缺点

    浅谈Linux进程间通信方式及优缺点

    这篇文章主要介绍了浅谈Linux进程间通信方式及优缺点,具有一定参考价值,需要的朋友可以了解下。
    2017-11-11

最新评论