• 1
  • 0
分享

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

我们继续来分享IO调优

4、IO调整

4.1 磁盘速度改进

改进方式,主要分两种:

①磁盘快取监控(disk cache controller)

②磁盘列阵技术

4.1.1 磁盘快取监控(disk cache controller)

定义

将从磁盘读取的数据存在快取内存(cache memory)中,以减少磁盘存储的次数。

数据的读取都在快取内存中进行,大幅增加存取的速度。

如果要读取的数据不在快取内存中,或要写数据到磁盘时,才做磁盘的存取动作。

注意点

这种方式在单工环境(single-tasking environment),如DOS之下,对大量数据的存储有很好的性能,

但是在多工环境(multi - tasking environment)或数据库(database)的存取,就不能显示其性能。

并且,这种方式,没有任何安全保障。

多工环境:要不停的做数据交换的动作

数据库:因为每一次记录都很小

4.1.2 磁盘列阵技术

定义

磁盘列阵是把多个磁盘组成一个阵列,当作单一磁盘使用,它将数据以分段(striping)的方式存储在不同的磁盘中,存取数据时,列阵中的相关磁盘一起动作,大幅降低数据的存取时间,同时有更佳的空间利用率。

磁盘阵列所利用的不同的技术,称为RAID Level,不同的Level针对不同的系统及应用,以解决数据安全的问题。

RAID Level 等级分类

1. RAID 0

①定义

将数据条带化(striping),将连续的数据分散到多个磁盘上进行存取,系统发出的IO命令(不管读/写)就可以在磁盘上被并行执行。

由于每个磁盘单独执行自己的那部分请求,故,这大大增强整个存储的系统的性能。

②图解

1.png

优点:

速度快,容量大

缺点:

无备份,安全差

③举例

一个RAID0列阵有n(≥2)个磁盘,每个磁盘的随机读写的IO能力达到100,

那么,整个磁盘阵列的IO能力就是 :100 * n。

如果传输能力允许,RAID0的吞吐率也是单个磁盘的 n倍。

2. RAID 1

①定义

在容量上, 相当于把两个磁盘合起来一起使用。

互为镜像的两个磁盘里面保存的数据时完全一样的,

因此,在并行读取的速度上将是n个磁盘速度之和,

但是,在写入的速度,就慢的多,因为要同时写入两个磁盘,故,速度就是 n/2。

②图解

18450.png

优点:

有备份,安全高

缺点:

写入慢

3. RAID 3

①图解

2.png

优点:

速度快,安全高,奇偶校验,一盘故障数据可重建

适用于:视频网站

缺点:

二盘同时故障,数据全部丢失

小数据读写不适用,随机读慢

4. RAID 3 + Spare

①图解

3.png

②解析

Spare:(磁盘数 - 2)*单盘容量

热备盘:备份故障盘上的内容

5. RAID 5

①定义

RAID5支持并行IO,而磁盘上的数据呈现条带状的分布在所有的磁盘上,

因此读IO的速度相当于所有磁盘速度之和;

前提条件:磁盘没有损坏

写入速度,是所有磁盘速度总和的 1/4;

所以RAID5是不适合用在大批量写入数据的系统上。

以下几种情况,建议采用RAID5:

要求较高的空间利用率;

安全性要求不高;

大文件存储系统.

②图解

4.png

③解析

是RAID3的加强版

Spare:(磁盘数 - 1)*单盘容量

热备盘:备份故障盘上的内容

6. RAID 6

①定义

RAID6与RAID5 很类似,差别在于RAID6比RAID5多了一个用于校验的磁盘。

读取IO速度,RAID6 和RAID5 是完全一样。

写入速度,区别RAID6将一个命令分成三次读、三次写,即6次IO命令来完成。

RAID6实际写入磁盘的速度是全部磁盘的1/6

②图解

5.png

③解析

Spare:(磁盘数 - 2)*单盘容量

7. RAID 10

①定义

先镜像后条带,称为RAID10;

先条带后镜像,称为RAID01。

不管是 RAID10还是RAID01,都是组合大于2块磁盘时候的RAID1。

从性能上看, RAID10和RAID01都是一样的,都是RAID1。

区别:

RAID10在重建故障磁盘的时候,性能比RAID01要快,安全性要高,不计成本

小数据量频繁写入的系统,推荐采用RAID10。

②图解

6.png

③解析

Spare:(磁盘数 *单盘容量)/2

5、减少IO方式

5.1 系统特性(B/S)

为了能让大家更容易的理解,

我们还是老规矩,上图:


7.png

5.2 存储体系

直接上图,图中解析


8.png

5.3 存储结构演化

直接上图,图中解析

9.png

5.4 优化思路

图解

10.png

6、总结

今天的分享,差不多就到这里了。

今天我通过实例+流程图的方式,来让你了解,什么是IO,已经IO的调优流程。

后期,我也会一直在性能的领域,继续进行分享。

如果想学习更专业的性能领域知识,

除了关注我文章, 

还可以持续预定我的性能测试讲堂, 

资深软件性能测试工程师的成长之路

深软件性能测试工程师的成长之路(第二讲)

资深性能测试工程师的成长之路(三):性能场景设计一

《持续更新....》

让你在性能领域,成为有话语权的测试工程师。

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

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          •   随着科技的发展和进步,自动化测试的应用越来越广泛深入,作为一种软件质量管控的重要手段,自动化测试通过将人为驱动的测试行为转为机器执行的一种过程。在替代大量重复性工作和提高回归测试效率方面发挥了很大的优势。  目前,自动化测试还不能完全的取代人工测试,自动化测试是否能够有效开展依赖于系统的稳定性。对于投产周期短,需求变更频繁,版本更新频率较高,甚至存在系统架构重构的可能性的系统,使用自动化测试工具录制的案例,在系统迭代更新后,需要频繁的修改调试自动化脚本,成本较高,因此此类系统不适用于自动化测试;对于部分优化升级系统,系统架构都趋于稳定,程序版本稳定,特别是投产周期长,需要频繁重复执行测试案...
            15 14 810
            分享
          •   1. 什么是单元测试框架  单元测试指的是对软件最小单元(方法、函数、类等)进行测试,常用的单元测试框架:  · Java:Junit、TestNg  · python:Unittest、Pytest  而在自动化测试中,一个用例就一个方法,所以在自动化测试中也同样适用单元测试框架。  2. 单元测试框架的作用  · 组织并执行测试用例  根据实际的测试需要,从大量测试用例中,选择出合适的用例批量执行,如:冒烟测试用例集、回归测试用例集等。  · 测试判断  任何测试都需要对实际结果和预期结果进行判断,单元测试框架都提供了丰富的断言方法。  · 测试...
            0 0 61
            分享
          • 一、前言说到底,你真的会造火箭吗?常说面试造火箭,入职拧螺丝。但你真的有造火箭的本事吗,大部分都是不敢承认自己的知识盲区和技术瓶颈以及经验不足的自嘲。面试时:我希望你懂数据结构,因为这样的你在使用HashMap、ArrayList、LinkedList,更加得心应手。我希望你懂散列算法,因为这样的你在设计路由时,会有很多选择;除法散列法、平方散列法、斐波那契(Fibonacci)散列法等。我希望你懂开源代码,因为这样的你在遇到问题时,可以快速定位,还可能创造出一些系统服务的中间件,来更好的解耦系统。我希望你懂设计模式,因为这样的你可以写出可扩展、易维护的程序,让整个团队都能向更好的方向发展。所...
            14 15 1925
            分享
          •   近日,有消息称,腾讯XR(扩展现实)团队全线解散,字节跳动收购的VR企业PICO启动人员调整优化。  XR是虚拟现实(VR)、增强现实(AR)和混合现实(MR)等沉浸式技术的总称。2022年6月,腾讯宣布成立软硬一体的XR业务线,归入腾讯互动娱乐事业群(IEG),被外界视为高调进军元宇宙的信号。腾讯高级副总裁马晓轶当时表示,该布局是希望抓住未来4-5年内的机会,在软件、内容、系统、工具SDK、硬件等各环节积极尝试,打造行业标杆的VR产品与体验。  对于解散传闻,今日腾讯方面回复记者称,腾讯游戏 XR 业务将变更硬件发展路径,相关业务团队进行调整。腾讯将为受影响员工提供两个月过渡期,并优先安...
            0 0 850
            分享
          • 1 引言1.1 编写目的编写该测试总结报告主要有以下几个目的:通过对测试结果的分析,得到对软件质量的评价;分析测试的过程,产品,资源,信息,为以后制定测试计划提供参考;评估测试测试执行和测试计划是否符合;分析系统存在的缺陷,为修复和预防bug提供建议。1.2 背景1.3 用户群主要读者:XX项目管理人员,XX项目测试经理其他读者:XX项目相关人员。1.4 定义严重bug:出现以下缺陷,测试定义为严重bugü 系统无响应,处于死机状态,需要其他人工修复系统才可复原;ü 点击某个菜单后出现“The page cannot be displayed”或者返回异常错误;ü 进行某个操作(增加、修改、删...
            11 11 2522
            分享
      • 51testing软件测试圈微信