Linux 常见性能指标 -- 磁盘

这篇具有很好参考价值的文章主要介绍了Linux 常见性能指标 -- 磁盘。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

本系列记录操作系统常见性能指标,写这个主要是记录也是回顾,笔记很长,拆分了几个部分,本篇记录 磁盘 的性能指标

常见概念

响应时间

简单描述:I/O 请求从发出到收到响应的间隔时间

是衡量磁盘性能的关键指标,响应时间越短,说明磁盘的处理速度越快。响应时间受到磁头寻道时间、数据传输速度和缓存大小等因素的影响。

使用率

简单描述:磁盘处理 I/O 的时间百分比

过高的使用率,比如超过 80%,通常意味着磁盘 I/O 存在性能瓶颈,使用率是从时间角度衡量I/O,但是磁盘还可以支持并行写,所以即使使用率100%,有可能还可以接收新的I/O(不饱和)

IOPS

简单描述:(Input/Output Per Second),是指每秒的 I/O 请求数

IOPS 越高,说明磁盘在同等时间内能处理更多的读写请求。IOPS 受到磁盘转速、缓存大小和控制器性能等因素的影响。

吞吐量

简单描述:每秒的 I/O 请求大小,通常用字节/秒或数据块/秒来表示。

吞吐量越高,说明磁盘的处理能力越强。吞吐量受到磁盘转速、数据传输速度和缓存大小等因素的影响。

饱和度

简单描述:磁盘处理 I/O 的繁忙程度

过高的饱和度,意味着磁盘有严重的性能瓶颈。当饱和度为 100% 时,磁盘无法接受新的 I/O 请求


观察工具

iostat 磁盘IO观测

iostat - Report Central Processing Unit (CPU) statistics and input/output statistics for devices and partitions.

展示CPU的统计信息以及磁盘和分区的IO统计信息

iostat 可以同时看到磁盘IO和CPU的数据,主要用来缩小IO分析范围,这些软件第一版信息一般都是不是我们需要的数据,差异太大,主要看后续实时的数据。

iostat 参数:
数据展示
    -c     Display the CPU utilization report.
    -d     Display the device utilization report.
    -h     Make the Device Utilization Report easier to read by a human.
    -x     Display extended statistics. 显示全部参数

指定磁盘或分区
    -p    可以指定磁盘设备,会显示这个块设备和块设备的分区信息

结果解释:

默认 

  • tps(transactions per second):每秒事务数,表示磁盘或操作系统每秒处理的输入/输出操作数。事务可以包括读取和写入操作。
  • kB_read/s:每秒读取的字节数,以千字节(KB)为单位。它表示磁盘或操作系统每秒从磁盘读取的数据量。
  • kB_wrtn/s:每秒写入的字节数,以千字节(KB)为单位。它表示磁盘或操作系统每秒向磁盘写入的数据量。
  • kB_read:读取的字节数,以千字节(KB)为单位。它表示磁盘或操作系统从磁盘读取的总数据量。
  • kB_wrtn:写入的字节数,以千字节(KB)为单位。它表示磁盘或操作系统向磁盘写入的总数据量。

扩展 -x 

  • r/s:每秒读取操作次数,表示磁盘读取数据的平均速度
  • w/s:每秒写入操作次数,表示磁盘写入数据的平均速度
  • rkB/s:每秒读取操作的吞吐量,以字节(B)为单位
  • wkB/s:每秒写入操作的吞吐量,以字节(B)为单位
  • rrqm/s:每秒读取请求次数,表示磁盘读取数据的平均请求次数
  • wrqm/s:每秒写入请求次数,表示磁盘写入数据的平均请求次数
  • %rrqm:读取请求占所有请求的比例,用于表示磁盘读取操作的负载情况
  • %wrqm:写入请求占所有请求的比例,用于表示磁盘写入操作的负载情况
  • r_await:平均读取等待时间,表示磁盘读取数据时,从发出请求到开始读取数据的时间
  • w_await:平均写入等待时间,表示磁盘写入数据时,从发出请求到开始写入数据的时间
  • aqu-sz:平均磁盘队列长度,表示磁盘等待处理的请求数量
  • rareq-sz:平均读取请求大小,表示磁盘读取数据的平均请求大小
  • wareq-sz:平均写入请求大小,表示磁盘写入数据的平均请求大小
  • svctm:平均服务时间,表示磁盘处理读写请求的平均时间
  • %util:磁盘使用率,表示磁盘资源被使用的比例
iostat -d -x 5

还记得IOPS吗,每秒的 I/O 请求数,那应该是rrqm/s + wrqm/s 

使用率: %util,磁盘处理IO的时间百分比,100%不等于IO饱和

吞吐量: rkB/s+wkB/s 每秒磁盘的读写量KB

响应时间: r_await+w_await 读写请求处理完成等待时间,毫秒

pidstat 进程IO观测

这个是我们常见的进程性能观测软件了,默认CPU、-r 内存、-d 磁盘,还有印象不

pidstat - Report statistics for Linux tasks.    Linux 进程统计信息输出

pidstat -d 5 3      每5秒显示所有有IO的进程的状态,显示3次
    用户 ID(UID)和进程 ID(PID) 
    进程每秒从磁盘读取的数据大小(kB_rd/s) ,单位是 KB
    进程每秒发出的写请求数据大小,包括将要写入的(kB_wr/s) ,单位是 KB
    每秒取消的写入磁盘请求数据大小(kB_ccwr/s) ,单位是 KB
    块 I/O 延迟(iodelay),包括等待同步块 I/O 和换入块 I/O 结束的时间,单位是时钟周期

可以通过pidstat -d 来查找读写数据量很大的进程,然后依据pwdx 找到这个进程的工作目录,来定位到实际在运行的进程。

iotop 类似top的IO监控

通过iotop可以动态的监控进程和内核的IO情况,帮助排查是用户态还是内核态进程读写较高。

iotop - simple top-like I/O monitor    简单的类似top的IO监控

iotop                    # 动态展示,适合查看
iotop -k -b -n2          # 静态打印,适合保存
    -k 单位kb
    -b 打开非交互模式
    -n2  迭代次数2次
    TID 指线程ID 交互模式下,按p转进程PID
    -P Only show processes. Normally iotop shows all threads.
    -u:监控指定用户的 I/O 操作

简单测试一下,效果还是很明显 

# 写入磁盘
dd if=/dev/zero of=/tmp/test_block bs=100M count=50
# iotop
4011116 be/4 root        0.00 B/s   94.64 M/s dd if=/dev/zero of=/tmp/test_block bs=100M count=50

PRIO 显示了进程或线程的优先级,在 Linux 系统中,进程的抢占优先级由 0(最高优先级)到 255(最低优先级)之间。数值越小,优先级越高。

在 Linux 系统中,实时进程具有比普通进程更高的优先级,可以优先获得 CPU 时间片。抢占优先级则决定了进程在多任务环境下的调度顺序。

"be" 表示这是一个后台进程(Background process)

"rt" 表示该进程的实时优先级(real-time priority)

"be/4" 表示这个后台进程的抢占优先级是4

TID 查找PID

readlink -f /proc/*/task/<tid>/../..
或者
find /proc/*/task/1565 -maxdepth 0

通过PID定位进程,查看进程读写情况,比较简单
cat /proc/<PID>/io

lsof -p <PID>     查看进程读写情况,比较详细

至此,我们大概能用上这几个IO的排查命令了,可以通过iostat 初步判断哪个块设备存在IO异常,通过 pidstat -d 来分析进程的IO,通过 iotop -k -b -n2 来记录进程的IO性能用来翻看历史状态。

不过,需要注意,iotop -k -b -n2 这个命令结果写入文件本身会产生较高的IO写入,建议先测试一下监控内容是否可以过滤,减少监控IO性能对应用运行的影响。文章来源地址https://www.toymoban.com/news/detail-819488.html

到了这里,关于Linux 常见性能指标 -- 磁盘的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Linux基础知识及常见指令

    什么是Linux? Linux是一个免费开源的操作系统内核,最初由Linus Torvalds于1991年创建。它是各种Linux发行版(通常称为“发行版”)的核心组件,这些发行版是完整的操作系统,包括Linux内核以及各种软件包,如系统实用工具、库和桌面环境等。 什么是Linux终端? Linux 的终端就是

    2024年02月09日
    浏览(30)
  • 【看表情包学Linux】磁盘基础知识 | CHS 寻址 | 逻辑扇区 LBA | 索引节点 inode | 伪删除 inode bitmap 1→0

      ​​​​​​​ 🤣  爆笑 Linux  教程:  👉 《看表情包学Linux》 🐴     本篇博客全站热榜排名: 9 💭 写在前面: 上面我们学到的所有东西,全部都是在内存中的。是不是所有的文件都被打开了呢?不是所有的文件,都被打开的,我们之前研究的是进程打开的文件,

    2024年02月16日
    浏览(35)
  • 华为云磁盘性能指标(参考)

    MD@[华为云磁盘性能指标(参考)] 根据性能,磁盘可分为极速型SSD V2、极速型SSD、通用型SSD V2、超高IO、通用型SSD、高IO、普通IO。 性能指标(参考),测速说明:操作系统-windows x86,CPU型号–通用计算增强型c7.large.2 2核4G,极速型SSD-40g-系统盘,超高IO-40g-数据盘,通用SSD-40g-数据盘

    2024年01月23日
    浏览(27)
  • Jmeter性能指标监控:CPU、内存、磁盘、网络

    jmeter版本:jmeter5.1.1 插件资源(可自己官网下载或从以下网盘中获取): 链接:https://pan.baidu.com/s/1vBr85BLuhhENrnWrFTDGhg 提取码:ywr4 获取插件的最简单方法是安装Plugins Manager,然后只需在Jmeter中单击复选框即可安装任何其他插件。 1)下载 jmeter-plugins-manager-1.3.jar文件 下载地址:

    2024年02月08日
    浏览(31)
  • Elasticsearch的高阶使用方法有哪些?,后端程序员必备的Linux基础知识+常见命令

    ③should 通用的道理:多个查询条件通过should连接,相当于以前常用的or,说白了也就是逻辑运算符“与”。 ps :关于其格式使用,不要看它图中好像挺复杂的样子,其实都可以通过工具有提示,并且这些写多了基本也就知道了。 2范围查询 商品都有自己的价格,用户可以通过

    2024年04月08日
    浏览(67)
  • ADC常见性能指标

    常见ADC性能指标 名称 英文全称 SNR(信噪比) SIGNAL-NOISE RATIO SINAD(信纳比) THD(总谐波失真) Total Harmonic Distortion SFDR(无杂散动态范围) Spurious-freeDynamicRange ENOB(有效位数) THD + N(总谐波失真加噪声) HD n阶谐波失真 DNL微分非线性 Differential NonLinea INL积分非线性 Integral Nonlinearity 定义 总谐

    2023年04月21日
    浏览(23)
  • 性能测试常见的测试指标

    先看下百度百科对它的定义 我们可以认为性能测试是:通过在测试环境下对系统或构件的性能进行探测,用以验证在生产环境下系统性能是否达 到预估的性能需求,发现系统可能存在的性能瓶颈,进而改善优化并系统的性能,提高系统的可扩展性、稳定性。 学习性能测试,

    2024年02月11日
    浏览(23)
  • 图像隐写综述(适合小白入门,涉及基础知识、评价指标与前沿算法)

    创作不易,点赞收藏,谢谢!如有交流需要,请关注微信公众号“笔名二十七画生”。 分享有趣知识的公众号 1.图像隐写基础知识 信息保护主要有两种手段: 1.加密技术,是直接对要保护的数据进行数学变换,并使得未授权方无法读取交换的秘密信息。 2.信息隐藏技术,则是将

    2024年02月21日
    浏览(39)
  • 云原生可观测框架 OpenTelemetry 基础知识(架构/分布式追踪/指标/日志/采样/收集器)...

    OpenTelemetry 是一个开源的可观测性框架,由云原生基金会(CNCF)托管。它是 OpenCensus 和 OpenTracing 项目的合并。旨在为所有类型的可观测信号(如跟踪、指标和日志)提供单一标准。 https://opentelemetry.io https://www.cncf.io https://opencensus.io OpenTelemetry 指定了如何收集遥测数据并将其发送到

    2024年01月16日
    浏览(41)
  • 性能测试基础知识

    什么是软件性能: 软件性能是软件在 执行特定任务或运行特定工作负载时的效率和表现力 。主要集中于软件的响应效率、资源占用、数据处理速度、可靠性等方面。 性能测试的概念: 性能测试是一种软件测试方法。主要是测试系统、应用程序或者组件在特定的场景下的性

    2024年02月09日
    浏览(28)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包