Linux

关注公众号 jb51net

关闭
首页 > 网站技巧 > 服务器 > Linux > Linux系统资源查看命令

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

作者:曾阿伦

本文系统介绍了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

实用快捷键:

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个进程

二、内存资源查看

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

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

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

# 用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

三、磁盘资源查看

磁盘是数据存储核心,需关注两个维度:存储空间使用(是否满了)和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

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

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

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

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  # 启动实时监控

核心输出解析:

快捷键:

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

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

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系统资源查看命令内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文