Raid组的Stripe Size到底设置为多少合适?

RAID5重建太慢?试试调整这个隐藏参数:条带大小(Stripe Size)的实战调优指南 本文深入探讨了RAID5阵列中条带大小(Stripe Size)对重建速度的影响,提供了详细的优化策略和实战调优指南。通过调整这个隐藏参数,管理员可以显著提升RAID5的重建速度,优化存储系统性能。文章还涵盖了不同工作负载下的最佳条带大小选择,以及安全调整的完整流程。 阅读详情
AI摘要

本文探讨了如何根据业务需求调整RAID组的Stripe Size以优化系统性能。内容涉及OLTP和OLAP型业务、同步异步IO、IO大小等因素,并强调Stripe Size应与IO Size匹配以实现最佳并发度,从而最大化吞吐量或IOPS。

最近冬瓜哥比较忙,加上休假,没有写什么文章。上周看到某群里讨论stripe size,于是乎冬瓜哥就想写个文章论述一下这个话题。

PMC 的Adaptec Raid卡的Stripe Size指的是一个条带在每块硬盘上占据的那一小块的容量(也就是条带深度,所以说成是blocksize或者segment size更为合适),而LSI的Raid卡的Stripe Size指的是整个条带的容量。这个非常重要的背景知识恐怕很少有人知道。本文中的“stripe size”指的是“整个条带的容量”,而不是一个条带跨在每个盘上的容量。

如何调节Stripe Size来使系统性能最大化?这个问题,首先得看你的应用场景到底是什么样的,主要有以下几个维度来决定这个问题的答案:

  • 你的业务属于OLTP型还是OLAP型

  • 追求的是MB/s吞吐量还是IOPS吞吐量

  • IO Size

  • 追求的是吞吐量还是时延

  • 上层IO的调用方式:同步异步,dio/buffer-io,write back/write through

  • IO 控制器与硬盘之间有没有经过SASExpander,如果有,PHY宽度是多少

下面冬瓜哥就来分析一下这几个因素自己搅和在一起,以及与Stripe Size搅和在一起会是个什么场景。

1. 如果的你的业务追求MB/s,同时还属于OLTP型。 这种场景很少见,一般追求MB/s吞吐量的都是地址连续的大块IO场景,而OLTP场景都是随机IO,而且IOSize一般都比较小,4K~16K左右。但是,的确有追求MB/s的OLTP场景,比如,CDN服务器,其的确是一个随机IO,但是又要求极高的带宽吞吐量,因为其要塞满前端带宽,否则就亏大了。这种情况下,除了使大量静态内容缓存在RAM中之外,底层磁盘也得给力,用SSD可以满足。这个场景其实本质上等效于追求高IOPS的场景,只不过从业务角度来看追求的是MB/s,只需要将IOPS乘IO Size便等于MB/s。所以,对这个场景的分析见下文。

2. 如果业务追求MB/s,同时属于OLAP型。 这种类型属于应用比较普遍的类型,比如视频流、备份、大数据分析等等。OLAP类型的应用一般会发出大块的地址连续的IO。不管是对HDD还是SSD,这种IO类型都是比较舒服的。而单盘的带宽也不过是几百兆B每秒,此时采用Raid可以提升带宽。

A . 如果应用层是这样的:单线程、direct io,同步IO、IOSize较大,地址连续IO。这种场景下,整个系统IO路径上同一个时刻只存在一个IO,此时,很不幸,系统性能与Stripe Size无关,因为这个IO不管是落在一块盘上,还是被分散到多块盘上,性能几乎相同,可能后者还略低于前者,因为后者需要Raid卡固件分解成多笔IO,发到多块不同的盘上执行,而如果这多块盘通过sas expander挂接到IO控制器上,这个问题会更加严重,因为一般x4 PHY的宽端口的并发度只有4,如果是多于4块盘的raid组,该场景下分解成多笔IO将会拖慢系统性能。这一点估计业界了解的人很少,关于SAS网络的门道,冬瓜哥看后续机会再介绍。

B . 如果应用层是这样的:其他参数与A场景相同,IO方式变为异步IO。假设该场景下outstanding IO数量假设为y(相当于队列深度为y,或者说当应用发出的io还剩y个没有返回时),IO Size=z,raid组硬盘数量为q,那么,条带容量应当=zq,以及令y=q,或者y=q的整数倍,此时系统MB/s达到最大值。也就是说,每个segment的容量=z,每个IO落在一个快盘上而不是分散到多块盘上,由于系统内outstanding io不为1,以及连续地址IO,raid卡固件会将队列中的多个IO发送到多块盘并行处理。

C . 如果应用层是这样的:多线程、每个线程都为同步IO。线程数量为p,那么该场景等效于B场景下的outstanding io数量为p时候的场景。

D . 如果应用层是这样的:多线程,每个线程都为异步IO。线程数量为p,每个线程的outstanding io数量为y。该场景相当于B场景下outstanding io数量为py时候的场景。

3. 如果业务追求的是IOPS,同时属于OLTP型。 OLTP型业务同时要求IOPS和时延,不能为了IOPS而牺牲了时延,反之亦然。

A . 如果应用层是这样的:单线程、direct io,同步IO、地址随机IO。这种场景下,整个系统IO路径上同一个时刻只存在一个IO,此时,很不幸,系统性能与Stripe Size无关。

B . 如果应用层是这样的:其他参数与A场景相同,IO方式变为异步IO。假设该场景下outstanding IO数量假设为y(相当于队列深度为y,或者说当应用发出的io还剩y个没有返回时),IO Size=z,raid组硬盘数量为q,那么,条带容量应当=zq,以及令y=q,或者y=q的整数倍,此时系统IOPS达到最大值。也就是说,每个segment的容量=z=IO Size,每个IO落在一个快盘上而不是分散到多块盘上,由于系统内outstanding io不为1,以及连续地址IO,raid卡固件会将队列中的多个IO发送到多块盘并行处理。如果该场景下另IO Size=Stirpe Size,那么性能将会奇差无比,因为根本无法并发。

C . 如果应用层是这样的:多线程、每个线程都为同步IO。线程数量为p,那么该场景等效于B场景下的outstanding io数量为p时候的场景。

D . 如果应用层是这样的:多线程,每个线程都为异步IO。线程数量为p,每个线程的outstanding io数量为y。该场景相当于B场景下outstanding io数量为py时候的场景。

上述仅列出了一些主要场景、主要参数的场景,更多场景大家可以自行研究。不过可以看到,这里面有个窍门,也就是让segment size=io size,此时系统性能最大化,不管是连续地址IO还是随机地址IO场景。将一个IO分散到多个盘,任何场景下都不是好主意,这个结论颠覆了多数人的认知,如果想不明白可以继续想。总结一下,Stripe size的调节,本质上是调节整体系统的并发度,也就是让IO充分的并发起来。也可以看到,如果系统顶层的压力不够,也就是没有足够多的IO被outstanding的话,系统性能无论如何也上不来,是一个恒定值,这个值完全取决于系统IO路径上的时延,时延越小,IOPS越大,所以,如果使用SSD,即便是上层应用写的很烂,采用单线程同步IO,也可以获取较高的IOPS。

怎么样,要想玩IO性能分析,就要做到所谓Full Stack,也就是将整个IO路径,从应用,到内核,到硬件,到外部存储系统,磁盘,磁头磁道扇区,全都整明白,才敢出来玩一玩性能分析。拿着厂商的“Best Practice”出来装逼的都是耍流氓。

那么,怎么才能整明白IO路径?公众号主页回复“io路径”。

关注“大话存储”获取业界最高逼格的存储及计算机系统知识。

。

冬瓜哥简介:冬瓜哥是《大话存储》系列图书作者,现任PMC-Sierra存储系统架构师。


hive.exec.orc.default.stripe.size相关 1)因此在适当增大hive.exec.orc.default.stripe.size, "256*1024*1024"的值可提高效率,就像适当提高blocksize也可以加快效率原理类似.也就是对应的default设置值:hive.exec.orc.default.stripe.size, "256*1024*1024 " stripe的默认大小。适当加大hive.exec.orc.default.stripe.size配置,以及在orc表比较大的情况下使用BI策略可有效提高效率, 阅读详情

相关推荐

RAID磁盘阵列全解析:从RAID 0到RAID 10,原理、选型与实战避坑指南

在数据存储领域,磁盘阵列(RAID)是一项基础且关键的冗余与性能提升技术。其核心原理是通过将多块独立硬盘组合成一个逻辑单元,运用条带化、镜像或奇偶校验等机制,在提升I/O吞吐量的同时,提供数据冗余保护,从而解决单点故障风险。这项技术的核心价值在于,它能在不显著增加复杂度的前提下,为服务器、NAS等系统构建高可用、高性能的存储层。典型的应用场景包括数据库服务器、虚拟化平台、文件共享及媒体存储等。本文将深入探讨RAID 0、RAID 1、RAID 5及RAID 10等主流级别的底层工作机制、性能特点与适用边界,

weixin_30703911的博客 347

虚机环境下Raid卡strip size选择64k还是1ms

Raid卡strip size选择64k还是1ms 从物理服务器安装系统时候要做raid卡的设置,会涉及raid卡的strip size大小选择。经过磁盘读写速度的测试,建议选择最大的strip size 1ms,测试过程及数据如下. 以DellPowerEdge R740 服务器为例. 开机等出现Ctrl + R 提示,进入Raid配置界面。 进入raid配置界面,定位到如图位置, 按F2,创建VM。如果有现存的Raid,确保数据不再使用后,需要删除现有rai...

nowdone的博客 5106

HBA与RAID卡的本质差异及应用场景解析

在服务器存储架构中,HBA卡(Host Bus Adapter)和RAID卡是两种核心组件,它们在数据处理和存储管理上有着本质区别。HBA卡作为透明通道,专注于高速数据传输,适用于软件定义存储和超低延迟场景;而RAID卡则通过专用硬件加速,提供磁盘阵列管理和数据冗余,适合传统企业存储和关键业务系统。理解这两种卡的工作原理和适用场景,对于优化存储性能和确保数据安全至关重要。特别是在超融合架构和全闪存阵列中,正确选择存储控制器可以显著提升IOPS和降低延迟。本文通过实测数据和典型应用案例,深入探讨HBA与RAI

weixin_29184371的博客 222

RAID卡配置--stripe size优化

RAID卡配置--stripe size 在每个磁盘上连续写入数据的总量,也称作“条带深度”。你可以指定每个逻辑驱动器的条带容量从2KB,4KB,8KB一直到128KB。为了获得更高的性能,要选择条带的容量等于或小于操作系统的簇的大小。大容量的条带会产生更高的读取性能,尤其在读取连续数据的时候。而读取随机数据的时候,最好设定条带的容量小一点。如果指定128KB的条带将需要8MB内存。 RA

烂笔头 1万+

DELL服务器RAID配置全攻略:从零开始搭建Server2012R2环境(附详细截图)

本文详细介绍了DELL服务器RAID配置的全过程,从基础原理到Server2012R2环境搭建,包括RAID级别选择、性能对比及实操步骤。通过清晰的截图和实用技巧,帮助IT运维人员高效完成服务器配置,提升数据安全性和系统性能。

weixin_30687051的博客 284

DELL R730服务器RAID配置避坑指南:从删除默认VD到创建RAID1+RAID5的完整流程

本文详细介绍了DELL R730服务器RAID配置的完整流程,从识别和删除默认RAID5虚拟磁盘到创建RAID1+RAID5组合。通过清晰的步骤指导和实用建议,帮助运维人员避免数据丢失风险,优化存储架构,提升服务器性能和可靠性。

weixin_30279671的博客 291

如何设置适合大小的stripe size对数据库?

首页 > MySQL, MySQL Innodb > Raid1+0 stripe size for MySQL InnoDB Raid1+0 stripe size for MySQL InnoDB 2011年12月12日谭俊青 发表评论阅读评论 MySQL InnoDB使用 Raid 1+0 stripe size 大小该如何配置? By: 谭俊青

haiross的专栏 1万+

RAID架构实战指南:性能、冗余与可靠性的工程平衡术

RAID(独立磁盘冗余阵列)是现代存储系统中协调性能、数据安全与成本效率的核心架构范式。其本质是在单盘IO瓶颈、物理故障风险和单位容量成本构成的‘不可能三角’中进行动态权衡。从条带化(Striping)提升吞吐,到镜像(Mirroring)保障低延迟写入,再到奇偶校验(如RAID5/6)实现N+1或N+2容错,每种RAID级别都映射着特定应用场景的技术契约。尤其在大容量硬盘(>4TB)普及的今天,RAID5因UER错误率上升和重建失败风险已成高危选项,而RAID10凭借无写惩罚、快速重建与确定性延迟,成为数

weixin_30906185的博客 481

RAID中的Stripe size对性能的影响?

一见 3788

超微服务器RAID配置避坑指南:从零搭建Ubuntu系统的关键步骤

本文为一份详尽的超微服务器RAID配置与Ubuntu系统部署实战指南。重点解析了硬件RAID配置的关键参数与避坑要点,提供了从存储设备识别、UEFI分区方案到GRUB引导修复的完整Ubuntu安装流程,并涵盖了SSH安全加固、驱动安装及基础性能调优等关键后期配置,帮助运维工程师高效搭建稳定可靠的服务器环境。

weixin_29299807的博客 135

招标文件智能解析系统开发文档

本系统是一个基于OCR与大语言模型的招标文件智能解析平台,专门用于处理和分析招标文件,自动提取关键信息并进行结构化展示。

警世龙的技术博客 1925

【存储】RAID 技术介绍和总结

【存储】RAID 技术介绍和总结 简介 RAID是一个我们经常能见到的名词。但却因为很少能在实际环境中体验,所以很难对其原...

小麦苗DBA宝典 1146

NetApp 7-mode初始化详解(原AGGR重建)及注意事项

没想到有生之年还能再写个7-mode的文章,上次接触可能已将近十年,本次恰巧碰到这个机会,边学习边整理,整整一天时间,碰到了不少坑,作为记录。

RaySun的技术Blog 2751

raid技术的介绍跟总结

简介 RAID是一个我们经常能见到的名词。但却因为很少能在实际环境中体验,所以很难对其原理 能有很清楚的认识和掌握。本文将对RAID技术进行介绍和总结,以期能尽量阐明其概念。 RAID全称为独立磁盘冗余阵列(Redundant Array of Independent Disks),基本思想就是把多个相对便宜的硬盘组合起来,成为一个硬盘阵列组,使性能达到甚至超过一个价格昂贵、 容量巨大的硬盘。

wackycrazy的专栏 603

地平线RDKX3初始配置与USB无线网卡

地平线X3无线网卡配置

Richard_Mei的博客 4075

DW1000芯片实战:如何用UWB技术打造10厘米精度的室内定位系统(附Arduino代码)

本文是一份基于DW1000芯片和UWB技术的实战指南,详细介绍了如何从零构建一个精度可达10厘米的室内定位系统。内容涵盖硬件选型与连接、软件环境配置、核心的双向测距算法实现,并深入探讨了信号干扰抑制、功耗优化等实战挑战,为物联网开发者提供了完整的Arduino代码和部署思路。

root9的博客 496

RAID的简单介绍

该文章全部复制转载于:http://blog.jobbole.com/83808/,只为做笔记供自己查看 简介 RAID是一个我们经常能见到的名词。但却因为很少能在实际环境中体验,所以很难对其原理 能有很清楚的认识和掌握。本文将对RAID技术进行介绍和总结,以期能尽量阐明其概念。 RAID全称为独立磁盘冗余阵列(Redundant Array of Independent Disks),基本...

weixin_30302609的博客 111

SAP_PP模块中MRP中信号灯简介

一、信号灯的作用二、常见的信号灯颜色及含义三、信号灯的来源四、常见场景示例示例1:物料满足所有需求示例2:生产订单已延迟示例3:缺料或未产生计划订单五、相关事务码参考六、如何应对红色或黄色信号灯?七、前台操作说明在 SAP PP 模块中,**MRP(物料需求计划)运行结果中的“信号灯”是一种非常直观的可视化提示工具,用于帮助用户快速识别物料计划是否存在异常或需要关注的问题。这些信号灯通常出现在MD04(库存/需求清单)、MD05(单物料MRP清单)、MD07(MRP列表)**等事务代码的界面中。

我小时候很黑的博客 621

raid硬盘格式化ext4性能参数

设置区块大小,发挥RAID上LVM及EXT的最佳性能 – Robot Shell HowTos/Disk_Optimization - CentOS Wiki 软RAID管理命令mdadm详解-左搜 https://busybox.net/~aldot/mkfs_stride.html For example if you have 4 drives in RAID5 and it is using 64K chunks and given a 4K file system block size.

dqwjack的专栏 875

74、光谱成像在电子内窥镜及色彩理论中的应用

本文探讨了光谱成像在电子内窥镜中的应用及其与色彩理论的深度融合。通过分析FICE技术、色彩再现模型及胃黏膜光谱测量,展示了光谱信息在提升医学诊断准确性方面的潜力。同时,系统阐述了颜色的物理属性、标准表示方法、同色异谱现象、颜色测量技术(密度法与比色法)以及CIELAB等均匀颜色空间的构建原理。结合流程图与对比表格,梳理了从光信号获取到颜色处理的完整路径,并展望了人工智能与新型视觉模型在未来医疗成像与色彩科学中的发展方向。

g2h3i4j5的博客 152

2026年VIVO嵌入式岗位高频面试题(含参考答案)

摘要:VIVO嵌入式岗位考核涵盖智能手机、IoT设备、芯片适配等方向,重点考察硬件底层交互、RTOS/Linux开发、C/C++功底与问题排查能力。题目按优先级排序,分硬件架构、RTOS、C/C++、数据结构、Linux实践、行业认知6大模块,共40道题。硬件部分涉及中断、ARM架构、加速技术、BSP开发等;RTOS部分区分硬/软实时系统;C/C++部分侧重内存管理、位操作;Linux部分考察常用命令;行业部分关注鸿蒙等系统理念。题目设计贴合实际工作场景,全面评估嵌入式开发能力。

Open 52

RAID技术详解

RAID是一个我们经常能见到的名词。但却因为很少能在实际环境中体验,所以很难对其原理 能有很清楚的认识和掌握。本文将对RAID技术进行介绍和总结,以期能尽量阐明其概念。 RAID全称为独立磁盘冗余阵列(Rdeundant Array of Independent Disks),基本思想就是把 多个相对便宜的硬盘组合起来,成为一个硬盘阵列组,使性能达到甚至超过...

weixin_34268843的博客 227

FastGPT智能体开发:FastGPT OpenAPI 知识库接口

FastGPT OpenAPI 知识库接口

王国平的博客 321

RAID-5(四)make_request

make_request是RAID-5数据路径的源头,正如我们前面对读写简单叙述中提到的,make_request就是取出stripe_head并将bio插入相应的dev链表,最后对stripe_head做第一轮处理。但我们看make_request的代码,并不是就这么简单的,它还有一些特殊的情况需要处理。

1755

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

上一篇: IO协议栈前沿技术研究动态(2015存储峰会分享)
下一篇: 第一块3D Xpoint NVDIMM样品抢先看
大话存储
博客等级 码龄9年 568粉丝 148原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值