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

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

不过,需要注意,iotop -k -b -n2 这个命令结果写入文件本身会产生较高的IO写入,建议先测试一下监控内容是否可以过滤,减少监控IO性能对应用运行的影响。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/640035.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【QT+QGIS跨平台编译】之二:【zlib+Qt跨平台编译】(一套代码、一套框架,跨平台编译)

文章目录 一、zlib介绍二、文件下载三、文件分析四、pro文件五、编译实践 一、zlib介绍 zlib是一套通用的解压缩开源库,提供了内存(in-memory)压缩和解压函数。zlib是一套通用的解压缩开源库,提供了内存(in-memory&am…

【小沐学GIS】基于C#绘制三维数字地球Earth(OpenGL)

🍺三维数字地球系列相关文章如下🍺:1【小沐学GIS】基于C绘制三维数字地球Earth(OpenGL、glfw、glut)第一期2【小沐学GIS】基于C绘制三维数字地球Earth(OpenGL、glfw、glut)第二期3【小沐学GIS】…

DQL基础查询

DQL基础查询 ● DQL(Data Query Language)数据查询语言查询是使用频率最高的一个操作,可以从一个表中查询数据,也可以从多个表中查询数据。 ● 基础查询语法: select 查询列表 from 表名; ● 特点: 查询…

三、内存分配

1. JVM 简化架构概览 1.1 运行时数据区(即内存区域,又称 JVM 内存结构) 如上面的 JVM 简化架构图所示,内存区域分为如下五个部分(这五个部分统称为运行时数据区): PC 寄存器(又称程…

Python-setup进阶打包命令

一、setup.py文件的书写 这个资料有很多,不多赘述,setup 函数常用的参数如下: 基础描述信息: name 包名称(起一个响亮的名字)version (-V) 包版本author 程序的作者author_email 程序的作者的邮箱地址mai…

Kafka-服务端-DelayedOperationPurgatory

DelayedOperationPurgatory是一个相对独立的组件,它的主要功能是管理延迟操作。 DelayedOperationPurgatory的底层依赖于Kafka提供的时间轮实现。 我们可以使用JDK本身提供的java.util.Timer或是DelayQueue轻松实现定时任务的功能,为什么Kafka还要专门…

图像处理之《用于统一源跟踪和深度伪造检测的深度可分离水印SepMark》论文精读

一、文章摘要 恶意的Deepfakes导致了一场关于区分真脸和伪造脸的激烈冲突。尽管已经制定了许多事后检测Deepfakes的对策,但毫无疑问,在可预见的操作之前,被动取证没有考虑对原始人脸采取任何预防措施。为了完成这个取证生态系统,…

python函数的使用

一、函数的定义 Python使用保留字def定义一个函数&#xff0c;形式如下&#xff1a; def <函数名>&#xff08;<参数列表>&#xff09;&#xff1a; <函数体> return <返回值> 函数的调用过程与C语言类似。 关于一中特殊的函数——匿名函数&…

月薪2W的软件测试工程师,到底是做什么的?

在生活中&#xff0c;我们常常会遇到以下几种窘迫时刻&#xff1a; 准备骑共享单车出行&#xff0c;却发现扫码开锁半天&#xff0c;车子都没有反应&#xff1b;手机导航打车&#xff0c;却发现地图定位偏差很大&#xff0c;司机总是跑错地方&#xff1b;买个水&#xff0c;却…

使用flask_limiter限制接口访问速率的方法

flask_limiter 目录 flask_limiter1.简介2.安装3.初始化4.装饰器用法5.limit用法 1.简介 这里简单介绍了一些使用flask_limiter的方法。具体详细可参考官方文档 https://flask-limiter.readthedocs.io/en/stable/ 2.安装 pip install flask_socketio3.初始化 from flask i…

Redis实战之-分布式锁-redission

一、分布式锁-redission功能介绍 基于setnx实现的分布式锁存在下面的问题&#xff1a; 重入问题&#xff1a;重入问题是指 获得锁的线程可以再次进入到相同的锁的代码块中&#xff0c;可重入锁的意义在于防止死锁&#xff0c;比如HashTable这样的代码中&#xff0c;他的方法都…

面试高频知识点:1集合 1.1HashSet集合的特点

HashSet&#xff08;哈希集合&#xff09;是Java集合框架中的一种实现Set接口的类&#xff0c;它具有以下特点&#xff1a; 无序性&#xff1a; HashSet不保证元素的顺序&#xff0c;即元素在集合中的存储顺序与它们的插入顺序无关。这是因为HashSet使用哈希表来存储元素&#…

​第14节-高质量简历写作求职通关-在线测试

在线测试主要包括性格测试、综合能力测试、技能测试三类 性格测试 性格测试主要用于考察个人与工岗位的匹配程度 考察内容包含性格、能力、动机、价值观等&#xff0c;考察形式一般为给出相应的工作场景&#xff0c;让你选择最喜欢或者最不喜欢的答案 技能考试 这类测试一般是针…

SpringMVC第一天

简介 SpringMVC技术与Servlet技术功能等同&#xff0c;均属于web层开发技术 SpringMVC是一种基于java实现的MVC模型的轻量级Web框架 优点 使用简单,开发便捷(相比于Servlet) 灵活性强 入门案例 第一步、导入SpringMVC与Servlet坐标 <?xml version"1.0" encod…

(Bean工厂的后处理器入门)学习Spring的第七天

一 . Bean工厂的后处理器入门 : 直接上图 BeanDefinitionRegistyPostProcessor 为 BeanFactoryProcessor的子接口 , 前者先执行(图里只有Bean工厂的后处理器第一个类型) 如下图 : 这两个接口可改变两个Map(BeanDefinitionMap , singletonObject)里的信息 (黑马只讲了BeanFact…

打造更智能的应用 - 机器学习和Andorid

打造更智能的应用 - 机器学习和Andorid 一、关于机器学习和Andorid二、使用 Gemini 让您的 Android 应用如虎添翼2.1 Gemini API2.2 Android AICore 三、现成可用的还是自定义的机器学习3.1 机器学习套件 SDK 的常见用户流3.2 高性能自定义机器学习 四、机器学习套件 SDK&#…

透明拼接屏生产商:如何选择合格供应商

随着透明拼接屏市场的不断扩大&#xff0c;越来越多的生产商加入其中。对于需求方而言&#xff0c;选择一家合格的生产商至关重要。本文将围绕如何选择透明拼接屏生产商展开讨论&#xff0c;同时结合对尼伽OLED显示屏的了解&#xff0c;为您推荐这一领域的优质供应商。 一、透明…

鸿蒙开发笔记(二十二): 页面路由(router),组件导航 Navigation, Tabs

1. 页面路由 router 页面路由指在应用程序中实现不同页面之间的跳转和数据传递。HarmonyOS提供了Router模块&#xff0c;通过不同的url地址&#xff0c;可以方便地进行页面路由&#xff0c;轻松地访问不同的页面。本文将从页面跳转、页面返回和页面返回前增加一个询问框几个方…

和平精英如何针对伏地魔

我的办法是开启颜色反转 一般安卓手机有这种功能 比如我是橘子系统4.0 橘子系统永远得神。 开启颜色反转 进入设置–快捷与辅助/更多设置–无障碍/辅助功能–颜色反转–打开开关即可。 注&#xff1a;颜色反转即增强显示内容的对比度&#xff0c;使对低对比度内容识别力差的人…

【JavaScript】正则表达式

文章目录 正则表达式一、语法二 、修饰符三、方括号四、元字符五、 量词六、RegExp对象方法七、支持正则的String的方法九 、正则表达式演示总结 正则表达式 正则表达式用于对字符串模式匹配及检索替换 一、语法 // 语法 var pattnew RegExp(pattern,modifiers); // 或者更简…