【条带化】-影响磁盘性能的关键

条带化-影响磁盘性能的关键

  • 1. 条带化简介
  • 2.影响条带化效果的两个因素
    • 2.1 条带大小(stripe size)
    • 2.2 条带宽度(stripe width)
    • 2.3 减小条带大小
    • 2.4 增加条带大小
    • 2.5 例子
  • 总结

1. 条带化简介

当多个进程同时访问一个磁盘时,可能会出现磁盘冲突。大多数磁盘系统都对访问次数(每秒的 I/O 操作,IOPS)和数据传输率(每秒传输的数据量,TPS)有限制。当达到这些限制时,后面需要访问磁盘的进程就需要等待,这时就是所谓的磁盘冲突。
避免磁盘冲突是优化 I/O 性能的一个重要目标,而 I/O 性能的优化与其他资源(如CPU和内存)的优化有着很大的区别 ,I/O 优化最有效的手段是将 I/O 最大限度的进行平衡。
条带化技术就是一种自动的将 I/O 的负载均衡到多个物理磁盘上的技术,条带化技术就是将一块连续的数据分成很多小部分并把他们分别存储到不同磁盘上去。这就能使多个进程同时访问数据的多个不同部分而不会造成磁盘冲突,而且在需要对这种数据进行顺序访问的时候可以获得最大程度上的 I/O 并行能力,从而获得非常好的性能。很多操作系统、磁盘设备供应商、各种第三方软件都能做到条带化。
操作系统和存储系统这两个层次中都可能使用条带化技术。


2.影响条带化效果的两个因素

2.1 条带大小(stripe size)

即数据被切成的小数据块的大小
条带大小(stripe size),有时也被叫做block size, chunk size, stripe length 或者 granularity。这个参数指的是写在每块磁盘上的条带数据块的大小。RAID的数据块大小一般在2KB到512KB之间(或者更大),其数值是2的次方,即2KB,4KB,8KB,16KB这样。

2.2 条带宽度(stripe width)

即数据被存储到多少块硬盘上
条带宽度(stripe width)是指同时可以并发读或写的条带数量。这个数量等于RAID中的物理硬盘数量。例如一个经过条带化的,具有4块物理硬盘的阵列的条带宽度就是4。增加条带宽度,可以增加阵列的读写性能。道理很明显,增加更多的硬盘,也就增加了可以同时并发读或写的条带数量。在其他条件一样的前提下,一个由8块18G硬盘组成的阵列相比一个由4块36G硬盘组成的阵列具有更高的传输性能。

2.3 减小条带大小

由于条带大小减小了,则文件被分成了更多个,更小的数据块。这些数据块会被分散到更多的硬盘上存储,因此提高了传输的性能,但是由于要多次寻找不同的数据块,磁盘定位的性能就下降了。

2.4 增加条带大小

与减小条带大小相反,会降低传输性能,提高定位性能。
根据上边的论述,我们会发现根据不同的应用类型,不同的性能需求,不同驱动器的不同特点(如SSD硬盘),不存在一个普遍适用的"最佳条带大小"。所以这也是存储厂家,文件系统编写者允许我们自己定义条带大小的原因。不同条带大小,对于文件如何存储有很大的影响

2.5 例子

在这里插入图片描述在这里插入图片描述
这是一个由4块硬盘组成的RAID0阵列,左边的条带大小为4KB,右边的条带大小为64KB。
左边的图中的每一条细格表示4KB大小。
图中红色文件大小是4KB,蓝色文件大小20KB,绿色文件大小为100KB,紫色文件大小为500KB。
从图中我们可以看到,不同条带大小对"中型大小"文件的影响是很大的。对于红色的4KB文件来说,不论条带是4KB还64KB,它都分布在一块硬盘的一个数据块上。而对于紫色的500KB文件来说,无论条带是4KB还是64KB,它都会被分布在四块硬盘上。
但是对于蓝色20KB的文件来说,如果采用64KB的条带大小,则它就会被分布在一块硬盘上,而不是像4KB条带时那样分布在四块硬盘上。同样绿色的100KB文件在64KB条带时,会被分布到2块硬盘,而4KB条带时则分布到4块硬盘上。可以看到,增加条带大小可以明显地增加定位性能。在上边的例子中,条带宽度理所当然是4。
下图是使用16KB条带时的文件分布图,可以对应参考理解一下。
在这里插入图片描述

总结

我们应该选择多大的条带大小呢?最好的办法是尝试不同组合,根据应用的不同得到自己的经验规律。
另外,不要过高估计不同条带大小间的性能差异。它有可能会差的很大,尤其是设置成4KB和256KB这样两个相对极端数值的时候,但对于相差不大的数值,它们的性能差异可能就不明显。
对于大多数应用来说,可以参考这样的经验法则:
大量的小文件读写时,采用较大的条带大小;
少量的大文件的快速访问,采用比较小的条带;
如果要平衡这两者,那么采用中间值。

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

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

相关文章

GitHub 2800颗星,支持GPT/Transformer,字节跳动这个开源项目是怎么来的?

AI 绘画、机器翻译、多轮对话……对于各类 AI 相关的功能来说,总有一个痛点,困扰着所有训模型的算法工程师们: 想要效果更好,那么 AI 模型一般都很大,耗费的算力更多不说,运行起来还更费时间; 如…

word文档批量生成工具(附免费软件)(按Excel表格内容自动替换内容生成文档)

批量生成word文档是让人无比厌恶但有时又不得不做的事情。比如学校要给拟录取的学生发通知书,就可能需要批量生成一批只有“姓名”、“学院”和“专业”不同,其他内容都相同的word文档以供打印(事实上直接生成pdf是更好的选择,这个…

超详细Redis入门教程——Redis分布式系统

前言 本文小新为大家带来 Redis分布式系统 相关知识,具体内容包括数据分区算法(包括:顺序分区,哈希分区),系统搭建与运行(包括:系统搭建,系统启动与关闭)&…

初学mybatis(七)缓存

学习回顾:初学mybatis(六) 一、简介 1、什么是缓存 [ Cache ]? 存在内存中的临时数据。将用户经常查询的数据放在缓存(内存)中,用户去查询数据就不用从磁盘上(关系型数据库数据文件)查询&#x…

赛效:如何将PDF文件分割成单页的PDF文档

1:打开wdashi点击PDF处理菜单里的“PDF分割”。 2:将本地PDF文件添加上去,在下方选择转换页码,在这里我们选择转换每一页。 3:点击右下角“开始转换”。 4:转换好后,点击绿色下载按钮将分割好的…

Generative Adversarial Network(生成对抗网络)

目录 Generative Adversarial Network(生成对抗网络) Basic Idea of GAN GAN as structured learning Can Generator learn by itself Can Discriminator generate Theory behind GAN Conditional GAN Generative Adversarial Network(…

【SpringMVC】| 报文信息转换器HttpMessageConverter

目录 框架搭建 报文信息转换器HttpMessageConverter 1. RequestBody注解 2. RequestEntity类型 3. RequestBody注解(常用) 重点:SpringMVC处理json 重点:SpringMVC处理ajax 重点:RestController注解 4. Respo…

Redis入门(4)-list

redis中list数据会按照插入顺序进行排序,其底层是一个无头结点的双向链表,因此表头和表尾的操作性能较高,但中间元素操作性能较差。 1.lpush key element [element ] 从表头插入元素 lpush nosql redis hbase lpush nosql mongdb2.lrange…

项目计划、进度与控制

思维导图 项目计划、进度与控制-思维导图 第一部分 项目管理概述 什么是项目 约瑟夫朱兰博士也说过,项目就是在已经确定好的时间内必须解决的问题 什么是项目管理 图1-1 项目管理就是工具、人和系统 image.png 组织是人的集合,过程是人在处理。如果人…

基于PaddleDetection fairmot目标跟踪 C++ 部署

1 源码下载 PaddleDetection 2 工程编译 参考:paddle 目标检测C部署流程 3 导出模型 python tools/export_model.py -c configs/mot/fairmot/fairmot_dla34_30e_576x320.yml --output_dir ./inference -o weightshttps://paddledet.bj.bcebos.com/models/mot/…

浅谈 Android Tombstone(墓碑日志)分析步骤 - 02

tomestone 日志: *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** Build fingerprint: qti/trinket/trinket:11/RKQ1.211119.001/37:user/test-keys Revision: 0 ABI: arm Timestamp: 2023-06-19 23:47:310800 pid: 742, tid: 32482, name: CAM_M…

联想小新Pro16怎么重装Win10系统?联想小新Pro16重装系统Win10教程

如果您是联想小新Pro16的用户,并且想要重装Win10系统,那么您来对地方了,无论是出于系统崩溃、性能下降还是个人需求改变的原因,重新安装操作系统可以帮助您恢复电脑的正常运行和提升使用体验。以下小编将为您分享联想小新Pro16重装…