• 1
  • 0
分享

1、引言

性能这块,虽然是小鱼一直不想去触碰的地方,

但是,身在江湖漂,哪能不带刀!!

小屌丝:鱼哥,最近你得注意身体啊

小鱼:昂… 怎么突然关心起我来了?

小屌丝:还用我说嘛,最近你博文更新的慢,不是在耍妹子,就是在去耍妹子的路上。

小鱼:( ‵o′)凸…我这是在忙工作的事情

小屌丝:我差点信了!!

小鱼:…算了,我不替自己解释了, 我替IO解释吧!

小屌丝:难道,今天要整IO? 那赶紧!

在认识IO之前,我们要先了解 一下磁盘。

然后在慢慢的认识IO

2、 硬盘知识

2.1 磁盘原理

1、定义

①盘片以每分钟数千转到上万转的速度在高速旋转,15K 10k 7.5k 5.2k RPM

②磁头就能对盘片上的指定位置进行数据的读写操作

③磁头磁化磁盘记录数据

2、图片

11.png

12.png

3、HDD示意图

13.png

2.2 磁盘接口

ATA:(IDE 电子集成驱动器 16Bit总线)可达133M/s

SATA:(串行ATA 8位总线)可达300M/s,甚至600M/s

小屌丝:为什么并行的ATA没有串行的SATA快呢?

小鱼:因为时钟频率不一样,一个时钟内ATA比SATA传输的数据要多

小屌丝:那为什么ATA不反提高时钟频率?

小鱼:排线多,信息干扰与同步问题啊。

小屌丝:哦,原来是这样啊。

2.3 磁盘读写

1. 随机访问(Random Access)

本次IO所给出的扇区地址和上次IO给出扇区地址相差比较大,这样的话磁头在两次IO操作之间需要作比较大的移动动作才能重新开始读/写数据

2. 连续访问(Sequential Access)

当次IO给出的扇区地址与上次IO结束的扇区地址一致或者是接近的话,那磁头就能很快的开始这次IO操作

3. 顺序IO模式(Queue Mode)

磁盘控制器可能会一次对磁盘组发出一连串的IO命令,如果磁盘组一次只能执行一个IO命令

4. 并发IO模式(Burst Mode)

当磁盘组能同时执行多个IO命令时,称为并发IO。并发IO只能发生在由多个磁盘组成的磁盘组上,单块磁盘只能一次处理一个IO命令

2.4 磁盘KPI

IOPS(IO per Second)

定义:

IO系统每秒所执行的IO操作的次数

图片解析

14.png

计算公式

IO Time = Seek Time + 60 sec/Rotational Speed/2 + IO Chunk Size/Transfer Rate

IOPS = 1/IO Time = 1/(Seek Time + 60 sec/Rotational Speed/2 + IO Chunk Size/Transfer Rate)

2.5 计算

2.5.1 IOPS计算

为了更直观了解IOPS的计算,

老规矩,上例子

①参数举例

PRM: rpm = round per minute转/每分钟

转速:7.2K RPM

Avg寻道时间:5ms

平均旋转延时:(60s/7.2K)*1/2=4.17ms

最坏情况:转一圈才开始读数据,乘1/2是把读写分开取二分之一

单位IO:比如最大传输速度50M

8K的块,传输时间 =8/50 = 0.156ms

②计算IOPS

IOPS = 1/(5ms+4.17ms+0.156ms)=107 次

2.5.2 传输速率/吞吐率计算

①计算公式

Transfer Rate = IOPS * IO Chunk Size(块大小)

②参数举例

IOPS = 1000

Chunk Size = 8K

TR = 1000 x 8K =8M/s

2.6 IO延时

2.6.1 瓶颈表象

①定义

磁盘IO延时(IO Latency)

也称为IO响应时间,是指内核对磁盘发出一个读或者写的IO命令,到内核接收到回应的时间,IO响应时间包括IO操作在磁盘处理的时间和IO操作在IO等待队列中所花费的等待时间。

单个IO时间

仅仅指的是IO操作在磁盘内部处理的时间,而IO响应时间还要包括IO操作在IO等待队列中所花费的等待时间。

②图片解析

32635.png

3、IO监控

3.1 windows系统

我们可以直接使用windows自带的监控器

在电脑打开 “性能监视器”,既可看到想看的…

15.png


由于小鱼电脑有上帝模式,所以,就直接打开 性能监视器。

3.2 windows IO性能

1. 单次IO大小

Avg.Disk Bytes/Read

AvgDisk Bytes/Write

2. IO响应时间

Avg.Disk sec/Read

Avg.Disk sec/Write

3. IOPS

Disk Reads/sec(<15ms)

Disk Writes/sec(<15ms)

Disk Transfers/sec

4. IO吞吐率

Disk Bytes/sec

Disk Read Bytes/sec

Disk Write Bytes/sec

5. Physical Disk

Physical Disk : Avg.Disk Queue Length (Q<2)

6. Page faults/sec

>>> Pages Input /sec (Read from disk pages)

>>>Pages Read/sec (Read form disk times)

7. Pages Output/sec

>>>Pages Output/sec(Write to disk)

3.3 Bi BO 流程图

16.png

3.4 磁盘性能分析

定义

1、Physical Disk : % Disk Time

2、Physical Disk : Avg.Disk Queue Length <2*盘数

3、Memory :Page Reads/sec

如果内存中没有,那么需要从磁盘中读取

列表展示

PRQDTResult
LHH磁盘瓶颈
HHH内在瓶颈

名词解析

①PR:Memery Page Reads/sec

②Q:Physical Disk Avg.Disk Queue Length

③DT:Physical Disk Time

④L:Low

⑤H:High


关于IO调优, 请持续关注下一篇

《深聊性能测试,从入门到放弃之:如何对IO进行性能调优(下)》

  • 【留下美好印记】
    赞赏支持
登录 后发表评论
+ 关注

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          •   据路透社报道,特斯拉首席执行官马斯克6月20日表示,他当晚在纽约与印度总理莫迪进行了一次“非常好的”谈话,将“尽人类最大可能尽快”(assoonashumanlypossible)让特斯拉进入印度。马斯克还说计划明年访问印度。  马斯克在被记者问及与莫迪的会面时说:“这是一次很棒的对话,非常好。”他还透露,他打算明年访问印度。当被记者问及特斯拉进入印度的时间表时,马斯克说:“我相信特斯拉会进入印度,并将在人类可能的情况下尽快这样做。”  据悉,这是莫迪访问美国期间的一项高层会议,也是双方首次就特斯拉在印度建立生产基地的问题进行直接沟通。  IT之家注意到,上个月特斯拉的高管曾访问印度,并与...
            0 0 1090
            分享
          •   各位朋友大家好,大家应该都是被这么奇葩的标题吸引点击进来的吧,既然来了,那就跟我一起读下去吧,保证你这几分钟没有浪费(即使浪费了也能给你不一样的想法),废话不多说,大家坐稳,系好安全带,开始发车喽!!!  灵感来源  首先我先简单的做下自我介绍,我其实是一名比较菜的前端开发,或者不安于现状(网页开发),平时比较喜欢搞点稀奇古怪的开发工具,或者学点跨端开发(electron),开发个chrome插件,喜欢学习开发之外的技能, 自动化测试等等,再经历了一阵瞎折腾之后,依旧碌碌无为,没啥大成就,高不成低不就的继续做着养活自己的工作。都是为了这碎银几两。  突然有一天灵光乍现,做ete测...
            0 0 310
            分享
          •   当我们需要在互联网上搜索一些信息时,往往会选择使用搜索引擎来获取更加准确和丰富的信息。Google搜索引擎是全球最大的搜索引擎之一,拥有着极其庞大的数据库和算法,可以根据关键词搜索出大量的相关信息。但是,当我们需要采集搜索结果中的URL时,手动复制粘贴会非常繁琐。因此,本文将介绍如何使用Python编写爬虫程序,自动爬取Google搜索结果中的URL。注意:谷歌爬取是要代理。  前置条件  在开始编写爬虫程序之前,需要确保已经安装了Python编程环境和一些必要的Python库,比如requests、re等。可以使用pip命令来安装这些库。  爬虫程序的实现  首先,我们需要设置请求头信息...
            0 0 677
            分享
          •   前言:经常听到汽车中的网络的是CAN协议,大概知道是什么,但是又好像不太了解,想去学习,但又看不懂专业名称,本文尝试从生活中网购一台汽车来类比说明模型和协议,希望能给大家提供一个不错的思路,为后续看协议原文作铺垫。  1.OSI七层模型  本章节打算从为什么是OSI模和什么是OSI模型型来简单入门地说明一下OSI七层模型,主要是为后面理解CAN协议作铺垫。  1.1为什么是OSI七层模型?  到20世纪70年代晚期,那时又大量专用的通信协议,这种互联工具的多样性使得使用不同协议的设备很难互相兼容,当时为了克服这一问题的可能方法就是使用统一的模型,一个为了描述一个通用的网络互联工具。OSI模...
            0 0 142
            分享
          • index:比较两列表元素(不考虑顺序,不考虑重复);调get型数据库接口,循环造数据(示例);连接操作mysql数据库;多进程执行pytest UI脚本(示例)。1、比较两列表元素(不考虑顺序,不考虑重复)def compareList(list1, list2):     """比较列表元素,不考虑顺序,不考虑重复"""     if sorted(set(list1)) == sorted(set(l...
            0 0 1118
            分享
      • 51testing软件测试圈微信