文章目录
- 1.Linux性能分析系统级别指标
-
- [io 指标监控命令](#io 指标监控命令)
- [cpu 指标监控命令](#cpu 指标监控命令)
- [mem指标监控命令 - 内存](#mem指标监控命令 - 内存)
- [net-指标监控命令 - 网络](#net-指标监控命令 - 网络)
- 总结
✨✨✨学习的道路很枯燥,希望我们能并肩走下来!
编程真是一件很奇妙的东西。你只是浅尝辄止,那么只会觉得枯燥乏味,像对待任务似的应付它。但你如果深入探索,就会发现其中的奇妙,了解许多所不知道的原理。知识的力量让你沉醉,甘愿深陷其中并发现宝藏。

本文开始
1.Linux性能分析系统级别指标
io 指标监控命令
系统磁盘IO数量,次数
- iostat
命令描述: 监控系统设备的IO负载情况
命令: iostat
iostat 1 5 : 每一秒监控一次,总共监控5次
Device: 系统挂载磁盘名称
tps: 每秒发生的 I/O 传输次数(即 I/O 请求次数)
kB_read/s: 每秒从设备读取的数据量(单位:千字节/秒)
kB_wrtn/s: 每秒向设备写入的数据量(单位:千字节/秒)
kB_dscd/s: 每秒被丢弃(discard)的数据量(单位:千字节/秒)
kB_read:自监控开始(或系统启动以来)累计读取的总数据量(单位:千字节)
kB_wrtn: 自监控开始(或系统启动以来)累计写入的总数据量(单位:千字节)
kB_dscd: 自监控开始以来累计丢弃(discard/TRIM)的总数据量(单位:千字节)
- df : 查看系统磁盘空间
命令描述: 列出⽂件系统的整体磁盘空间使⽤情况
命令: df -h
cpu 指标监控命令
- uptime
命令描述: 用于显示系统总共运行了多长时间和系统的平均负载
命令: uptime
当前系统时间
系统连续运行的时间
多少使用用户
loadaverage(系统负载平均值): 过去1分钟平均负载,过去5分钟平均负载,过去15分钟内平均负载
- cat /proc/cpuinfo
命令描述: 查看CPU的配置信息
命令: cat /proc/cpuinfo
查看有几个cpu内核,下面是查看cpu并过滤出主要的processor内核
- mpstat
命令描述: 是一款常用的多核CPU性能分析工具,用来实时查询每个CPU的性能指标,以及所有CPU的平均指标
命令演示:mpstat 后指定参数
mpstat
mpstat -P ALL : 展示平均和每个cpu值
mpstat -P 1 :展示内核为1的cpu值
mpstat 默认显示自系统启动以来的 平均 CPU 使用率;
数据参数说明:
重点关注:%usr,%sys,%iowait,%idle
| 列名 | 值 | 含义说明 |
|---|---|---|
| 时间 | 09:58:47 PM |
统计截止时间(即命令执行时的时间) |
| CPU | all |
表示这是 所有 CPU 核心的平均值(若显示 0、1 则是各核心单独统计) |
| %usr | 0.18 |
用户态 CPU 使用率→ 普通应用程序(如 shell、Python、Java 等)占用的 CPU 时间百分比-用户进程使用的百分比 |
| %nice | 0.00 |
低优先级(nice > 0)用户进程的 CPU 使用率 → 当前无此类进程 |
| %sys | 0.08 |
系统进程占用 CPU 使用率 → 执行系统调用、中断处理、内核线程等所占比例 |
| %iowait | 0.01 |
CPU 等待 I/O 完成的时间占比 → 高值可能表示磁盘 I/O 瓶颈(但需结合 iostat 判断) |
| %irq | 0.00 |
硬中断(Hardware IRQ)处理占用的 CPU → 如网卡、磁盘控制器触发的中断 |
| %soft | 0.00 |
软中断(SoftIRQ)处理占用的 CPU → 如网络协议栈下半部处理 |
| %steal | 0.00 |
虚拟机被宿主机"偷走"的 CPU 时间 → 在虚拟化环境中才有意义(如 AWS EC2、VMware),非 0 表示资源争抢 |
| %guest | 0.00 |
运行虚拟机 guest OS 的 CPU 时间(已包含在 %usr 中) |
| %gnice | 0.00 |
低优先级虚拟机 guest 的 CPU 时间 |
| %idle | 99.73 |
CPU 空闲时间占用百分比(未执行任何任务,且无 I/O 等待) |
- sar
命令描述: 是一个Linux下的监控工具,可以用来监控CPU性能状况
命令: sar -u 1 1
解释命令:每隔一秒监控一次,总共监控 1 次
mem指标监控命令 - 内存
- cat /proc/meminfo
命令描述: 查看内存相关配置信息
命令演示: cat /proc/meminfo
- vmstat
命令描述: 用来获得有关进程、内存、虚拟内存、页面交换空间及 CPU活动的信息
命令演示: vmstat
展示参数说明:
| 字段 | 值 | 含义 |
|---|---|---|
| 进程相关 | --- | ---- |
| r | 2 |
正在运行(running)或等待 CPU 的进程数→ 如果该值长期 > CPU 核心数,说明 CPU 可能存在瓶颈。当前值为 2,但结合 CPU idle=100%,说明这两个进程可能只是瞬时就绪,并未持续占用 CPU。 |
| b | 0 |
通常是等待 I/O(如磁盘、网络)完成。值为 0 表示无 I/O 阻塞。 |
| 内存相关 | ---- | ------ |
| swpd | 0 |
已使用的 交换分区(swap)大小(KB) → 0 表示完全没有使用 swap,物理内存充足。 |
| free | 130308 |
空闲物理内存(KB) ≈ 127 MB → 注意:Linux 会尽量利用内存做缓存,所以"free"小 ≠ 内存不足。 |
| buff | 205008 |
缓冲区缓存(buffer cache)(KB)≈ 200 MB → 主要用于块设备(如磁盘)的元数据缓存。 |
| cache | 2189388 |
页缓存(page cache)(KB)≈ 2.1 GB → 缓存文件内容,可被回收。 |
| swap交换活动 | ---- | ------ |
| si | 0 |
从 swap 换入内存的数据量(swap in)(KB/s) → 非 0 表示内存压力大,正从磁盘换回数据。 |
| so | 0 |
从内存换出到 swap 的数据量(swap out)(KB/s) → 非 0 表示物理内存不足,正在写入 swap。 |
| IO相关 | ---- | ------ |
| bi | 1 |
每秒从块设备读入的块数(blocks in) → 极低,几乎无磁盘读。 |
| bo | 6 |
每秒写入块设备的块数(blocks out) → 极低,少量写操作(如日志)。 |
| system | ---- | ------ |
| in | 5 |
每秒中断次数(interrupts) → 包括硬件中断(如键盘、网卡)和软件中断。 |
| cs | 4 |
每秒上下文切换次数(context switches) → 进程/线程切换 CPU 执行权的频率。 |
| CPU | ---- | ------ |
| us | 0 |
用户态 CPU 使用率(user) → 应用程序代码执行时间。 |
| sy | 0 |
内核态 CPU 使用率(system) → 系统调用、内核任务时间。 |
| id | 100 |
CPU 空闲时间(idle) → 系统完全空闲! |
| wa | 0 |
I/O 等待时间(wait) → CPU 空闲但有未完成 I/O。0 表示无 I/O 瓶颈。 |
| st | 0 |
steal time → 虚拟机被宿主机抢占的时间。0 表示非虚拟化或资源充足。 |
- free
命令描述: 显示系统使用和空闲内存情况,包括物理内存、交互区内存(swap)和内核缓冲区内存
命令演示: free, free -g
-g 将单位换算为 G
net-指标监控命令 - 网络
- ping
命令描述: 向目标系统发送报文,检测网络连通性的工具
命令演示: ping 目标ip - ifconfig
命令描述: 用于获取网卡配置与网络状态等信息
命令演示: ifconfig - hostname
命令描述: 显示本机的hostname, 修改本机的hostname
命令演示:
hostname :- 显示本地用户信息
hostname -i : 显示数字的ip地址
-
netstat
命令描述: 用于显示各种网络相关信息,如网络连接,路由表,接口状态等
命令演示:
netstat -an :n参数数字形式展示
如:不加n : localhost:domain
加n:127.0.0.52:52
netstat -at : 展示tcp协议相关
netstat -au :展示udp协议相关
netstat -p
-
netstat参数说明:
-a:显示 所有 sockets(包括监听中的和已建立的连接)
-n:以 数字形式 显示地址和端口号(不解析主机名、服务名)
-t:仅显示 TCP 协议的连接。
-u:仅显示 UDP 协议的连接。
-p:展示每个连接/监听的进程PID,进程名称/程序名称
-
【扩展】
ss -tulnp # 等价于 netstat -tulnp,但速度更快
-
常用组合
netstat -tulnp # 看谁在监听什么端口
netstat -an | grep :8080 # 看 8080 端口状态
总结
✨✨✨各位读友,本篇分享到内容是否更好的帮助你理解,如果对你有帮助给个👍赞鼓励一下吧!!
🎉🎉🎉世上没有绝望的处境,只有对处境绝望的人。
🎉🎉🎉一遇挫折就灰心丧气的人,永远是个失败者。而一向努力奋斗,坚韧不拔的人会走向成功。
感谢每一位一起走到这的伙伴,我们可以一起交流进步!!!一起加油吧!!!











