当前位置: 代码网 > 服务器>服务器>Linux > Linux性能监控的工具集和分析命令工具详解

Linux性能监控的工具集和分析命令工具详解

2025年12月19日 Linux 我要评论
常见磁盘io性能指标磁盘读写常见指标iops(input/output operations per second)指每秒能处理的i/o个数,表示块存储处理读写(输出/输入)的能力,单位为次,有顺序i

常见磁盘io性能指标

磁盘读写常见指标

iops(input/output operations per second)

  • 指每秒能处理的i/o个数,表示块存储处理读写(输出/输入)的能力,单位为次,有顺序iops和随机iops
  • 比如100次/秒,那iops就是100次/秒,例如数据库类应用等典型场景重点提升这个指标,下面是阿里云盘性能

吞吐量/带宽(throughput)

  • 是指单位时间内可以成功传输的数据数量,单位为mb/s
  • 如 一个硬盘的读写 io 是 1mb,硬盘的 iops 是 100,那么硬盘总的吞吐率就是 100mb/s

带宽 = iops * io大小

访问时延(latency)

  • 是指io请求从发出到收到响应的间隔时间,常以毫秒ms或者微妙us为单位
  • 硬盘响应时间 = 硬盘访问时间 + io排队延迟,过高的时延会导致应用性能下降或报错
  • 普通的hdd磁盘,随机io读写延迟是10毫秒,io带宽大约100mb/秒,随机iops一般在100左右

使用率 utilization

  • 指磁盘处理 i/o 的时间百分比,过高的使用率 ,常规字段 utilization-缩写%util 表示
  • 如超过 80%意味着磁盘 i/o 存在性能瓶颈
  • i/o 等待队列长度 queue length

表示等待处理的 i/o 请求的数目,如果 i/o 请求压力持续超出磁盘处理能力,就会增大队列长度

饱和度

  • 磁盘处理 i/o 的繁忙程度,过高的饱和度说明磁盘存在严重的性能瓶颈
  • 当饱和度为 100% 时,磁盘无法接受新的 i/o 请求
  • 注意:使用率和饱和度是完全不同的

使用率只考虑有没有io,不考虑io的大小;当使用率是100%时,磁盘也可能接收新的io请求

sysstat提供了linux性能监控的工具集

【全局命令】 iostat

- 查看系统综合的磁盘io情况
- iostat [参数] [时间] [次数]    ` iostat -p all -h`
- 参数说明
参数说明
-c仅显示cpu状态统计信息
-d仅显示磁盘统计信息
-k 或 -m以kb 或 mb为单位显示,常用 -h 可读性高
-p指定显示io的设备,all表示显示所有
-x显示详细信息

显示信息,iostat不能直接得到磁盘饱和度

字段说明
【重要】r/s每秒发送给磁盘的读请求次数 , r/s+ w/s 是磁盘 iops
【重要】w/s每秒发送给磁盘的写请求次数,r/s+ w/s 是磁盘 iops
【重要】rkb/s每秒从磁盘读取的数据量,rkb/s+wkb/s 是吞吐量
【重要】wkb/s每秒向磁盘写入的数据量,rkb/s+wkb/s 是吞吐量
【重要】r_await读请求处理完成等待时间,包括在队列中的等待时间和设备实际处理时间
r_await+w_await ,是rt响应时间
【重要】w_await写请求处理完成等待时间,包括在队列中的等待时间和设备实际处理时间
r_await+w_await ,是rt响应时间
【重要】aqu-sz平均请求队列长度
rareq-sz平均读请求大小
wareq-sz平均写请求大小
【重要】%util磁盘处理i/o的时间百分比,表示的是磁盘的忙碌情况;如果>80% 就是磁盘可能处于忙碌状态
一秒中有百分之多少的时间用于i/o操作,或者说一秒中有多少时间i/o队列是非空的

多核cpu监控的核心工具mpstat

参数说明示例
-p {cpu | all}指定要监控的cpu核心 cpu:cpu编号(从0开始) all:所有cpu核心mpstat -p 0 监控0号核心 mpstat -p all 监控所有核心
间隔时间数据采集间隔(秒)mpstat 2 每2秒刷新一次
次数采集次数,不指定则持续运行mpstat 2 5 每2秒采集,共5次
-u显示cpu利用率(默认参数,通常省略)mpstat -u 1

字段说明
cpucpu核心编号(all表示所有核心平均值)
%usr用户态cpu时间(运行应用程序代码)
%nice低优先级(nice值>0)用户进程cpu时间
%sys内核态cpu时间(系统调用、内核线程)
%iowaitcpu等待i/o完成的时间(重要!>5%需关注)
%irq硬件中断处理时间
%soft软中断处理时间(网络包处理、调度等)
%steal虚拟化环境中被宿主机抢占的时间(>10%表示虚拟机竞争激烈)
%guest运行虚拟cpu的时间(虚拟机客户机)
%gnice低优先级虚拟cpu时间
%idlecpu空闲时间(等待任务)

进程级资源监控pidstat

  • 语法与参数
pidstat [选项] [间隔时间] [次数]
类别参数说明关键指标
cpu监控-u进程cpu使用率(默认选项)%usr, %system, %cpu
内存监控-r页错误与内存使用minflt/s, majflt/s, vsz, rss, %mem
i/o监控-d磁盘i/o统计kb_rd/s, kb_wr/s, kb_ccwr/s
上下文切换-w进程上下文切换cswch/s, nvcswch/s
进程筛选-p <pid>监控指定进程可指定多个pid,逗号分隔
-p all监控所有进程
线程监控-t显示线程详细信息tgid(线程组id), tid(线程id)
命令显示-l显示完整命令行便于识别进程
输出格式-h水平输出(无换行)便于脚本处理
间隔控制间隔采样间隔(秒)如 1 表示1秒
次数采样次数如 5 表示采样5次后退出

监控所有进程的cpu使用率,每2秒刷新

字段说明
%usr进程在用户态的cpu使用率(运行应用程序代码)
%system进程在内核态的cpu使用率(执行系统调用)
%guest进程在虚拟机中运行的cpu使用率
%wait进程等待运行的时间百分比(linux 2.6.26+)
%cpu进程总的cpu使用率 = %usr + %system + %guest
cpu进程最后运行的cpu核心编号

磁盘io常见指标和分析命令工具介绍

局部命令iotop

  • 查看当前系统的各个进程 使用磁盘io的情况
  • 安装 yum install -y iotop
  • iotop -o -d 3 每3秒刷新下各个进程磁盘io情况

参数

参数说明
-o只显示正在读写磁盘的程序
-d跟一个数值,表示iotop命令刷新的时间

字段说明
total disk read从磁盘中读取的总速率
total disk write往磁盘里写入的总速率
actual disk read从磁盘中读取的实际速率
actual disk write往磁盘里写入的实际速率
tid线程id,按 p 可以转换成进程id
prio优先级
user线程所有者
disk read进程从磁盘中读取的速率
disk write进程往磁盘里写入的速率
swapin进程swap交换百分比
io>io等待所占用的百分比
command具体的进程命令

总结

  • 【全局】iostat是系统级别的io监控
  • 【局部】iotop是进程级别io监控

以上为个人经验,希望能给大家一个参考,也希望大家多多支持代码网。

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com