性能测试-性能监控相关命令-基础篇

文章目录

  • 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 核心的平均值(若显示 01 则是各核心单独统计)
%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 端口状态


总结

✨✨✨各位读友,本篇分享到内容是否更好的帮助你理解,如果对你有帮助给个👍赞鼓励一下吧!!
🎉🎉🎉世上没有绝望的处境,只有对处境绝望的人。
🎉🎉🎉一遇挫折就灰心丧气的人,永远是个失败者。而一向努力奋斗,坚韧不拔的人会走向成功。
感谢每一位一起走到这的伙伴,我们可以一起交流进步!!!一起加油吧!!!

相关推荐
潞哥的博客2 小时前
Ingress nginx退役,该怎么换,gateway api 上线
运维·gateway·k8s
Kapaseker2 小时前
必须要搞懂的 View 核心问题
android·kotlin
为java加瓦2 小时前
Linux 系统磁盘空间清理指南:安全释放存储空间的完整方案
linux·curl
半路_出家ren2 小时前
20.基于Selenium实现界面自动化控制
运维·python·selenium·测试工具·网络安全·自动化·chromedriver
古城小栈2 小时前
Rust 交叉编译:MacOS ====> Linux (musl 静态编译)
linux·macos·rust
墨着染霜华2 小时前
iptables实战:IP访问限制与解除限制教程
linux
H_z_q24012 小时前
RHCE的NFS服务器
运维·服务器
运筹vivo@2 小时前
攻防世界: simple_php
android·php·android studio
小明的叽喳2 小时前
linux 基础(二)
linux·运维·服务器