顶会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。这样的能力对于需要频繁创建和复制存储环境的场景(如开发测试、大规模部署、灾备演练等)来说,是极其宝贵的,它极大提升了资源分配的效率和响应速度。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

机器学习统计学基础 - 最大似然估计

最大似然估计(Maximum Likelihood Estimation, MLE)是一种常用的参数估计方法,其基本原理是通过最大化观测数据出现的概率来寻找最优的参数估计值。具体来说,最大似然估计的核心思想是利用已知的样本结果,反推最有可能…

零知识证明技术:隐私保护的利器

在当今信息时代,数据安全和隐私保护的重要性日益凸显。随着技术的发展,密码学在保障信息安全方面发挥着越来越重要的作用。其中,零知识证明技术作为一种新兴的密码学方法,为隐私保护提供了强有力的支持。本文将简要介绍零知识证明…

一.4 处理器读并解释储存在内存中的指令

此刻,hello.c源程序已经被编译系统翻译成了可执行目标文件hello,并被存放在硬盘上。要想在Unix系统上运行该可执行文件,我们将它的文件名输入到称为shell的应用程序中: linux>./hello hello, world linux> shell是一个命令…

[Flink]二、Flink1.13

7. 处理函数 之前所介绍的流处理 API,无论是基本的转换、聚合,还是更为复杂的窗口操作,其实都是基于 DataStream 进行转换的;所以可以统称为 DataStream API ,这也是 Flink 编程的核心。而我们知道,为了让代码有更强大的表现力和易用性, Flink 本身提供了多…

【面试题】串联探针和旁挂探针有什么区别?

在网络安全领域中,串联探针和旁挂探针(通常也被称为旁路探针)是两种不同部署方式的监控设备,它们各自具有独特的特性和应用场景。以下是它们之间的主要区别: 部署方式 串联探针:串联探针一般通过网关或者…

@react-google-maps/api实现谷歌地图嵌入React项目中,并且做到点击地图任意一处,获得它的经纬度

1.第一步要加入项目package.json中或者直接yarn install它都可以 "react-google-maps/api": "^2.19.3",2.加入项目中 import AMapLoader from amap/amap-jsapi-loader;import React, { PureComponent } from react; import { GoogleMap, LoadScript, Mar…

【刷题笔记(编程题)05】另类加法、走方格的方案数、井字棋、密码强度等级

1. 另类加法 给定两个int A和B。编写一个函数返回AB的值,但不得使用或其他算数运算符。 测试样例: 1,2 返回:3 示例 1 输入 输出 思路1: 二进制0101和1101的相加 0 1 0 1 1 1 0 1 其实就是 不带进位的结果1000 和进位产生的1010相加 无进位加…

虚拟地址空间划分

记住:任何编程语言编译之后产生汇编指令数据 每一个进程的用户空间是私有的,内核空间是共享的(管道通信的原理) X86 32为linux环境下,虚拟地址空间结构 只读区: .text段:指令段,存放汇编指令 .rodata段:常量段,存放常…

Linux环境部署Python Web服务

“姑娘,再见面就要靠运气了,可别装作不认识,那句“好久不见”可干万别打颤…” 将使用 Python 编写的后端 API 部署到 Linux 环境中,可以按照以下详细步骤操作。本文将涵盖环境准备、API 编写、使用 Gunicorn 作为 WSGI 服务器、配…

C++编译链接原理

从底层剖析程序从编译到运行的整个过程 三个阶段 一、编译阶段二、链接阶段三、运行阶段 为了方便解释,给出两端示例代码,下面围绕代码进行实验: //sum.cpp int gdata 10; int sum(int a,int b) {return ab; }//main.cpp extern int gdata…

49.实现调试器HOOK机制

免责声明:内容仅供学习参考,请合法利用知识,禁止进行违法犯罪活动! 上一个内容:47.HOOK引擎优化支持CALL与JMP位置做HOOK 以 47.HOOK引擎优化支持CALL与JMP位置做HOOK 它的代码为基础进行修改 效果图:游…

Mysql8.0.36 Centos8环境安装

下载安装包 官网地址:MySQL :: Download MySQL Community Server (Archived Versions) 可以直接下载后再传到服务器,也可以在服务器采用wget下载。如下: wget https://downloads.mysql.com/archives/get/p/23/file/mysql-8.0.36-linux-glib…

mp4视频太大怎么压缩不影响画质,mp4文件太大怎么变小且清晰度高

在数字化时代,我们常常面临视频文件过大的问题。尤其是mp4格式的视频,文件大小往往令人望而却步。那么,如何在不影响画质的前提下,有效地压缩mp4视频呢?本文将为您揭秘几种简单实用的压缩技巧。 在分享和存储视频时&am…

ELK+Filebeat+Kafka+Zookeeper

本实验基于ELFK已经搭好的情况下 ELK日志分析 架构解析 第一层、数据采集层 数据采集层位于最左边的业务服务器集群上,在每个业务服务器上面安装了filebeat做日志收集,然后把采集到的原始日志发送到Kafkazookeeper集群上。第二层、消息队列层 原始日志发…

运维锅总详解系统设计原则

本文对CAP、BASE、ACID、SOLID 原则、12-Factor 应用方法论等12种系统设计原则进行分析举例,希望对您在进行系统设计、理解系统运行背后遵循的原理有所帮助! 一、CAP、BASE、ACID简介 以下是 ACID、CAP 和 BASE 系统设计原则的详细说明及其应用举例&am…

降Compose十八掌之『飞龙在天』| Layout

公众号「稀有猿诉」 原文链接 降Compose十八掌之『飞龙在天』| Layout 页面布局是GUI应用开发的核心,决定着一个UI具体如何实现。今天将延着路线图来练习『降Compose十八掌』的第二招式,学习一下如何使用Compose中的布局来构建页面。 基础骨架 基…

前端vue打印后端对象为[object,object]

今天给自己项目进行编写前端页面时,惊讶的发现,自己进行打印后端传递的对象,一直显示未[object,object],如下图所示: 感觉很奇怪,于是我猜测是不是自己获取的返回数据的问题,在进行添加了datat…

Windows10/11家庭版开启Hyper-V虚拟机功能详解

Hyper-V是微软的一款虚拟机软件,可以使我们在一台Windows PC上,在虚拟环境下同时运行多个互相之间完全隔离的操作系统,这就实现了在Windows环境下运行Linux以及其他OS的可能性。和第三方虚拟机软件,如VMware等相比,Hyp…

云计算【第一阶段(28)】DNS域名解析服务

一、DNS解析的定义与作用 1.1、DNS解析的定义 DNS解析(Domain Name System Resolution)是互联网服务中的一个核心环节,它负责将用户容易记住的域名转换成网络设备能够识别和使用的IP地址。一般来讲域名比 IP 地址更加的有含义、也更容易记住…

202487读书笔记|《我有个拥抱,你要不要》——生活从来如此,你的态度赋予它意义

202487读书笔记|《我有个拥抱,你要不要》——生活从来如此,你的态度赋予它意义 《我有个拥抱,你要不要》作者一天到晚气fufu,挺有愛的小漫画,适合用来看图说话锻炼小语言,我看的很快乐也写得很痛快&#xf…