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 监控一致,top 和 ps 同样可查看进程内存占用,核心关注两个指标:
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 -rh:r降序,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 iftop 或 apt 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系统资源查看命令内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
使用Kubeadm在CentOS7.2上部署Kubernetes集群的方法
本篇文章主要介绍了使用Kubeadm在CentOS7.2上部署Kubernetes集群的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧2018-03-03


最新评论