• 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进行性能调优(下)》

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

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          • 黑盒测试(black—box testing)又称功能测试、数据驱动测试或基于规范的测试。用这种方法进行测试时,被测程序被当作看不见内部的黑盒。在完全不考虑程序内部结构和内部特性的情况下,测试者仅依据程序功能的需求规范考虑确定测试用例和推断测试结果的正确性。因此黑盒测试是从用户观点出发的测试,黑盒测试直观的想法就是既然程序被规定做某些事,那我们就看看它是不是在任何情况下都做的对。完整的“任何情况”是无法验证的,为此黑盒测试也有一套产生测试用例的方法,以产生有限的测试用例而覆盖足够多的“任何情况”。由于黑盒测试不需要了解程序内部结构,所以许多高层的测试如确认测试、系统测试、验收测试都采用黑盒测试...
            15 15 3313
            分享
          •   之前我们讲过,测试工程师的4层技术发展路线都需要掌握哪些技能。学而优则仕,今天我们来说说如果想做某个行业的专家应该掌握哪些技能。  如果你对测试技术不感兴趣,但对某领域的业务兴趣浓厚,可以考虑行业专家路线。  由于测试工程师对产品和业务很熟悉,成为专业的产品经理和业务专家,而且目前很多公司在Beta测试时需要专门的业务工程师或业务专家参与测试。  且配置管理和质量管理也是软件测试工程师职业的一个发展方向:测试工程师——业务测试专家/测试咨询专家/用户体验专家/产品设计专家/软件质量管理专家/项目经理。  晋升方法  大厂  如果你是在大厂,了解公司相关晋升制度,寻求晋升机会,与领导或人力资...
            0 0 437
            分享
          •   显示性能测试进度  前些天逛github发现了tqdm,他可以动态显示程序的执行进度。根据前面开发的功能,在运行性能时,如果并发用户和请求数很大,那么终端就处于执行状态,不会有任何信息输出,直到运行结果,结果才被打印出来。  > python3 kb.py https://wwww.baidu.com -u 10 -q 10   请求URL: https://wwww.baidu.com   用户数:10,循环次数: 10   ============== Running =...
            0 0 152
            分享
          • 跟大家说说写好一份简历的三个核心点——技能、技能的结果、技能的价值。请好好琢磨这三个短语,如果有需要,记在你的小本本上,或者收藏本文,随时回看和品琢。1、技能。即,你掌握了哪些技术,具备哪些能力。此点,几乎每个人会写。你只需注意技能匹配度的问题——招聘企业的要求是什么,他们需要候选人具备什么样的技能。如果是投递心仪的公司,更要做好简历技能匹配,别拿一份简历广撒网。我做hr的朋友与我讲过,他最头痛的事,便是招聘需求写着要求职者具备x能力,并且有企业实操,可仍旧有很多不满条件的简历投进来,哪怕是加上必须具备这样的词眼,也没啥效果。而他的做法,也很简单:哼一句,右滑退出……你可能会说,咱就广撒网,说...
            0 0 897
            分享
          •   各位小伙伴们还记上个月小红书APP崩溃闪退,导致大批用户卸载APP重装的事故吗?闪退Bug从凌晨持续到第二天上午。  事发第二天,就有研发在线承认了,因为自己的失误导致了这次事件,评论区也有人担心博主会不会失去工作。  这件事会到此为止吗?有研发人员承认了错误,测试人员还需要负责吗?  也由此引出一个测试人员的最大疑问:  项目上线后出了严重Bug,到底是谁的责任?  目前存在如下两种观点:  Mr.Zhou  Mr.Zhou是企业的研发总监,他看到这个Bug时,确定是测试的锅。  他认为:测试工程师是软件产品质量的最后一个把关者,没有做好更新测试,才导致版本发布上线后APP更新崩溃。因此...
            0 0 950
            分享
      • 51testing软件测试圈微信