顶会FAST24最佳论文|阿里云块存储架构演进的得与失-4.EBS不同架构性能提升思路

3.1 平均延迟与长尾延迟

虚拟磁盘(VD)的延迟是由其底层架构决定的,具体而言,取决于请求所经历的路径。以EBS2为例,VD的延迟受制于两跳网络(从BlockClient到BlockServer,再至ChunkServer)的延迟、软件栈处理时间(即BlockClient、BlockServer和Pangu组件的处理时间)以及SSD的I/O操作时间。因此,延迟的弹性本质上是粗粒度的,不同架构(比如EBS2和EBS3)下的各种时间开销级别不同。针对不同代际的EBS,在其最繁忙的生产集群的前10%中,测量了8 KiB随机读写操作的平均延迟构成。由于EBS1已不再部署且其硬件(如HDD和10Gbps网络)已过时,故未将其纳入比较。

图片

  • 硬件处理的主导作用:不论是EBS2还是EBS3,大部分总延迟都是由硬件处理造成的,包括第一跳和第二跳网络(橙色和粉色标记)以及磁盘I/O(黄色标记)。

  • EBS3的特性:尽管EBS3在前端增加了EC(纠错编码)和压缩处理的时间,但因数据体积减小,网络传输时间(即第二跳延迟)相应减少,这使得EBS3与EBS2的总体延迟相近。这一结果反映了EBS3在优化数据处理与传输时间之间的平衡。

  • 读写差异:读操作与写操作的主要区别在于硬盘I/O延迟。值得注意的是,EBS2采用的是TLC SSD,而EBS3则使用QLC SSD。这两种类型SSD在性能特性上有所不同,特别是写入速度和耐久性,这也会影响它们的I/O延迟表现。

扩展阅读:

  • 深度剖析:大容量QLC SSD为何遭疯抢?

  • 全景解析SSD IO QoS性能优化

  • 为什么QLC NAND才是ZNS SSD最大的赢家?

上述分析侧重于平均延迟,但长尾延迟QoS(即极端情况下的延迟)也是衡量存储系统性能的关键指标。长尾延迟通常受软件处理的不确定性、资源竞争、以及硬件突发状况等因素影响。在EBS2和EBS3中,通过优化软件栈处理流程,比如分离客户端I/O与后台任务(如垃圾回收),以及采用更高效的数据处理算法,可以减少由软件引起的大延迟事件,从而改善整体的长尾延迟表现。

3.2 IOPS与吞吐带宽

系统整体的IOPS和吞吐量上限主要受到BlockClient的限制。BlockClient作为客户端请求与后端存储服务交互的前端组件,它的处理和转发能力直接影响了整个系统能够处理的IOPS和数据吞吐量。具体来说,BlockClient处理请求从内核空间到用户空间的转换,并进一步到硬件卸载(如FPGA或专用加速器),这一系列操作构成了性能的瓶颈。

  • EBS2的改进在EBS2中,通过引入用户空间TCP堆栈处理I/O请求,将I/O处理从内核空间转移到用户空间,以减少内核态与用户态之间的切换开销,从而提升性能。

  • EBS3的进一步优化EBS3在此基础上更进一步,利用通用FPGA(Field-Programmable Gate Array)硬件卸载技术,直接绕过CPU处理数据移动、数据块CRC校验和数据包传输,显著提升了I/O处理能力。EBS3配备2x100G网络,但此时瓶颈转移到了PCIe总线带宽上

  • 吞吐量与IOPS随HT数量增加:下图展示了BlockClient在不同优化措施下,最大吞吐量和IOPS的变化情况。结果显示,对于EBS2,当使用2x25Gbps网络时,吞吐量主要受限于网络能力。而在EBS3的2x100G网络配置下,瓶颈变为PCIe带宽。只要网络带宽允许,增加超线程(HT)数量就能提升IOPS

图片

为了更好地适应不同工作负载的需求,引入了自适应性能级别(AutoPL)的虚拟磁盘。这意味着用户可以根据实际需求动态调整IOPS和吞吐量,而不需要改变磁盘的容量配置。这种机制为用户提供了一种灵活的方式来应对瞬时或周期性的性能高峰。

  • Base + Burst策略:为了高效分配IOPS和吞吐量给不同的虚拟磁盘(VDs),采用基础(Base)与突发(Burst)相结合的策略。

    • 基础吞吐量:确保每个VD都能获得一个最低的、稳定的IOPS和吞吐量保障(Base throughput),满足基本的性能需求,确保服务质量。

    • 突发吞吐量:在基础之上,系统会根据当前资源的可用情况,尽力满足VD的额外性能需求(Burst throughput)。这种策略允许VD在需要时短时间内超过其基础配额,以应对短暂的高负载情况,而不会长期影响其他VD的性能。

3.3 容量

在EBS的设计中,实现容量弹性的能力是其作为云块存储服务的基本要求之一。为了满足这一需求,EBS引入了多项关键特性来增强其在容量管理上的灵活性和效率,具体包括以下两点:

  • 分段设计带来的无缝VD调整:EBS利用分段设计(Segmentation Design)实现了虚拟磁盘(VD)容量的无缝调整,即用户可以轻松地对VD进行扩容或缩容操作,这一过程通过添加或移除所谓的“SegmentGroups”来完成。SegmentGroups作为存储空间分配的逻辑单元,使得EBS能够快速响应用户对存储容量变化的需求,而无需中断服务。目前,EBS支持的虚拟磁盘容量范围从1 GiB到64 TiB,覆盖了从小型应用到大型数据库等多种存储需求场景。

图片

  • 快速克隆:server-less应用的特点之一是需要在短时间内快速分配大量资源,如虚拟磁盘。为此,EBS利用了Pangu文件系统的硬链接特性,这一特性允许在存储集群内部通过下载单个快照来克隆多个磁盘,大大加快了资源部署的速度。基于这一技术,EBS2能够实现令人印象深刻的性能指标:在1分钟内创建多达10,000个虚拟磁盘,每个磁盘大小为40 GiB。这样的能力对于需要频繁创建和复制存储环境的场景(如开发测试、大规模部署、灾备演练等)来说,是极其宝贵的,它极大提升了资源分配的效率和响应速度。

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

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

相关文章

Xilinx FPGA:vivado关于IIC的一些零碎知识点

一、简介 IlC(inter-Integrated circuit)总线是一种由NXP(原PHILIPS)公司开发的两线式串行总线,用于连接微控制器及其外围设备。多用于主控制器和从器件间的主从通信,在小数据量场合使用,传输距离短,任意时刻只能有一个主机等特性…

13 协程设计原理与汇编实现

协程的问题 为什么要有协程?协程的原语操作?协程的切换?协程的struct如何定义?协程的scheduler(调度)如何定义?调度策略如何实现?协程如何与posix,api兼容?协程多核模式?协程的性能如何测试?为什么要有协程 同步的编程方式,异步的性能。同步编程时,我们需要等待io就…

信息技术课堂纪律管理:从混乱到秩序的智慧转型

引言: 在信息爆炸的时代,信息技术课程如同一把开启未来世界大门的钥匙,为学生们搭建起探索科技奥秘的桥梁。然而,面对着屏幕背后的无限诱惑,维持课堂纪律,确保学生们专注于学习,成为了每位信息…

C/C++内存分布

1.内存分布简略图 2.全局变量和静态变量的区别 (1)局部静态变量:存储在数据段中,局部静态变量的作用域在当前函数中,出了函数就不能使用该变量,但局部静态变量的生命周期是在整个程序间,局部静态变量要运行到这一行才…

【Java14】构造器

Java中的构造器在创建对象(实例)的时候执行初始化。Java类必须包含一个或一个以上的构造器。 Java中的构造器类似C中的构造函数。 Java中对象(object)的默认初始化规则是: 数值型变量初始化为0;布尔型变量…

【CSAPP】-cachelab实验

目录 实验目的与要求 实验设备与软件环境 实验过程与结果(可贴图) 操作异常问题与解决方案 实验总结 实验目的与要求 1、掌握应用程序性能的优化方法; 2、理解存储器层次结构在程序运行过程中所起的重要作用; 3、让学生更好…

高考志愿填报的六个不要

在高考志愿填报这个关键时刻,确实需要谨慎行事,避免一些常见的错误。以下是高考志愿填报的六个“不要”,希望能为你提供一些有用的建议: 1、不要盲目跟风 每个人的兴趣、能力和未来规划都不同,不要仅仅因为某个专业或…

Gradle基础:从入门到掌握

人不走空 🌈个人主页:人不走空 💖系列专栏:算法专题 ⏰诗词歌赋:斯是陋室,惟吾德馨 在现代软件开发中,自动化构建工具是提高效率和管理依赖的重要手段。而Gradle作为一种灵活且强大的构…

python基础篇(9):模块

1 模块简介 Python 模块(Module),是一个 Python 文件,以 .py 结尾. 模块能定义函数,类和变量,模块里也能包含可执行的代码. 模块的作用: python中有很多各种不同的模块, 每一个模块都可以帮助我们快速的实现一些功能, 比如实现…

工业4.0视角下:PLC转OPC UA网关的作用

在工业自动化领域,PLC(可编程逻辑控制器)是常见的控制设备,而OPC UA(开放型工业自动化统一架构)协议则是一种现代化的通信协议,用在工厂自动化系统中实现设备之间的数据交换和通信。PLC转OPC U…

TensorRT动态形状(Dynamic Shape)出错,官方demo+自己模型运行时出错

(2024.7.2) 使用TensorRT处理动态输入形状推理时出现的错误,本案基于官方demo文件,已解决: TensorRT版本10.0,官方例子使用的是这个https://github.com/NVIDIA/trt-samples-for-hackathon-cn/blob/master/cookbook/01-SimpleDem…

贝叶斯估计(1):期末大乱炖

写在前面! 1 先验分布和后验分布 三种信息:总体信息、样本信息、先验信息 总体信息:“总体是正态分布”;样本信息:总体抽取的样本提供的信息,是最新鲜的信息;先验信息:在抽样之前就…

Excel数据截取及合并多行多列数据

公式一:RIGHT(A2,LEN(A2)-FINDB(")",A2)) 公式二:PHONETIC(C2:D19) 详情可以看附件。

AJAX快速入门(一) express框架的安装和使用范例

主打一个有用 首先保证安装了nodejs环境 打开终端 初始化npm npm init安装express npm i express测试样例 目录结构 样例代码 express.js //引入express const express require(express);//创建应用对象 const app express();//创建路由规则 //req是请求对象&#x…

一文清晰了解HTML——简单实例

想要仿照该页面编写HTML代码&#xff1a; 在vscode中输入&#xff01;自动生成默认模板&#xff1a; <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevic…

第二证券股市资讯:深夜!突然暴涨75%!

一则重磅收买引发医药圈轰动。 北京时间7月8日晚间&#xff0c;美股开盘后&#xff0c;美国生物制药公司Morphic股价一度暴升超75%。音讯面上&#xff0c;生物医药巨子礼来公司官宣&#xff0c;将以57美元/股的价格现金收买Morphic&#xff0c;较上星期五的收盘价溢价79%&…

19_谷歌GoogLeNet(InceptionV1)深度学习图像分类算法

1.1 简介 GoogLeNet&#xff08;有时也称为GoogleNet或Inception Net&#xff09;是一种深度学习架构&#xff0c;由Google的研究团队在2014年提出&#xff0c;主要设计者为Christian Szegedy等人。这个模型是在当年的ImageNet大规模视觉识别挑战赛&#xff08;ILSVRC&#xf…

什么是T0策略?有没有可以持仓自动做T的策略软件?

​​行情低迷&#xff0c;持仓被套&#xff0c;不想被动等待&#xff1f;长期持股&#xff0c;想要增厚持仓收益&#xff1f;有没有可以自动做T的工具或者策略&#xff1f;日内T0交易&#xff0c;做到降低持仓成本&#xff0c;优化收益预期。 什么是T0策略&#xff1f; 可以提…

韦东山嵌入式linux系列-LED驱动程序

之前学习STM32F103C8T6的时候&#xff0c;学习过对应GPIO的输出&#xff1a; 操作STM32的GPIO需要3个步骤&#xff1a; 使用RCC开启GPIO的时钟、使用GPIO_Init函数初始化GPIO、使用输入/输出函数控制GPIO口。 【STM32】GPIO输出-CSDN博客 这里再看看STM32MP157的GPIO引脚使用…

jmeter-beanshell学习5-beanshell加减乘除运算

我用到的场景是计算金额&#xff0c;所以主要以金额为主&#xff0c;感觉这部分有点麻烦&#xff0c;直接写遇到的几个坑&#xff0c;就不演示解决的过程了。 1.最早写了个两数相减&#xff0c;但是小数精度容易出现问题。比如1-0.010.989999997这种情况&#xff0c;随便写的几…