降低存储网络55% 延迟!阿里云存储论文入选计算机顶会

近日,计算机系统领域的国际顶级学术会议USENIX ATC 2023在美国波士顿市举行。凭借在规模化部署和应用模型上的创新,阿里云存储团队发表的技术论文《Deploying User-space TCP at Cloud Scale with LUNA》被顶会收录,这是继NSDI 21、SIGCOMM 22之后,阿里云又一篇被全球A类顶会收录的存储网络技术论文。

Deploying User-space TCP at Cloud Scale with LUNA.jpg

USENIX ATC全称为USENIX年度技术大会(USENIX Annul Technical Conference),是计算机系统结构方向最重要的国际会议之一,也是中国计算机学会CCF推荐的A类会议。自1992年以来,已成功举办30多届,吸引了来自全球的顶级名校及科技巨头投稿。本届顶会共收到353篇论文投稿,其中录用65篇,录用率约为18.41% ,极为严苛。

云计算时代下,基于内核TCP的数据中心网络已无法满足系统对性能和可用性的要求,在《Deploying User-space TCP at Cloud Scale with LUNA》论文中,全面介绍了阿里云是如何用自研技术解决这一难题的。

顶会现场.png

具体来说,围绕飞天云计算操作系统核心组件之一的盘古存储系统,阿里云存储团队自主研发了名为“Luna”的用户态网络。通过核间资源不共享、数据链路分层融合、全栈零拷贝,Luna极大提高了存储性能、降低存储延迟,可在超大规模的前提下承载不同的应用负载, 覆盖低延迟、高吞吐、高并发等多种复杂场景。

在相同负载下,Luna的延迟比内核TCP降低了55% 以上,吞吐提升了100% ,尤其在短连接场景下,每秒请求数提升了3.5倍。

Luna架构图.png

在多项创新技术的加持下,阿里云将云盘的IOPS提升了3倍,并不断推出满足用户不同需求的存储产品,包括性能和容量解耦、性能秒级弹性突发的云盘新规格ESSD AutoPL,以及延迟低至40微秒、IOPS高达300万的ESSD PL-X。

此外,全系列云盘规格还大幅减少了网络异常引入的I/O抖动,长尾I/O毛刺下降至毫秒级,提供更优的性能SLO,满足从数据库、在线交易系统到高性能计算等多种业务形态的需求。

过去十年,阿里云将计算的成本降低了80%,存储的成本降低了近90%,并持续提升云上用户体验。目前Luna网络技术已在阿里云上大规模应用,配合块存储、对象存储、文件存储、表格存储、备份容灾等云产品服务云上数百万客户,覆盖政企、互联网、金融、零售、制造、医疗等千行百业。

Deploying User-space TCP at Cloud Scale with Luna是今年阿里在USENIX ATC 2023中的一篇文章,介绍了它们的用户态协议栈

文章是概要的介绍了下他们之前的工作

要解决了还是100G网络下,内核协议栈性能比较差的问题,用户态协议栈减少中断,内存拷贝的开销能大幅度的提升系统的效率,但目前常见的用户态协议栈不太能满足他们的需求,例如像mtcp(好古老的开山用户态协议栈)要进行拷贝操作,IX单个应用独占了网卡,常见的用户态协议栈没能好好的利用内核态的鲁棒性等等,所以他们决定自己搞事情

另外文章也同时提到,像RDMA这种高性能的传输方法在一个数据中心内部还挺好用,但跨数据中心就很难部署,所以还是离不开TCP/IP

背景说明

作为背景,以及需求介绍,主要跟着他们的系统结构图来提

主要2点还是,RDMA不合适,同时旧的一些环境还需要内核tcp/ip,所以要兼容

luna目前是这样一个架构,使用了r2c结构,协议栈和APP在一个thread下处理,下层用网卡多队列分流,一部分流走内核态协议栈,即用户态和内核态同时支持

总之三个大的特征

1)r2c

2)零拷贝到传输

3)基于网卡分流的独特的流量分流

r2c

r2c有两套接口,inline-r2c通过事件驱动,一次处理一批包,另外对BSD接口,还有batch-r2c,这种模式下每个包都有自己的call back函数实现,一个一个包进行处理(猜测例如某些要立刻送往内核态的ARP请求包啥的)

2)零拷贝的内存

mbuf采用索引值,记录使用次数,猜测用的dpdk rte_mbuf的refcnt值,这样可以和驱动保持一致,驱动释放时内存不会释放

mbuf找物理地址的方法,先通过虚地址找所属哪一个2MB,然后看offset是啥,驱动用的物理地址就是2MB的物理地址+offset

只要用的是同一块物理地址,就能实现不拷贝的前提下,全程访问同一块内存。同时为了方式内存被以外释放,用索引值记录使用次数,多一个部分用就+1,释放就-1,只有释放一直减为0才能说这块内存被真正释放

3)流量分流

目前用的端口号+flow director分流

flow director可以通过配置,将固定源/目的IP,源/目的端口号,包类型(大至TCP/UDP,小到SYN包和普通包)分流到特定网卡上。

luna会将某非tcp流送入到内核态中处理,tcp流则按照端口送往特定的thread上,thread和网卡队列是绑定关系

luna保留了61440~65530这部分的端口号

flow director一个很大的问题是,网卡的流表项是有限的,记得intel 82599是4K条表项,目前阿里单个服务器按照论文上是160条流表,还算够用

性能测试

然后是一些测试,luna一定是比其他的协议栈在吞吐与延迟要更好一些

同时还有些分析,例如拷贝到底带来多少开销(99分位也只有25%左右延迟开销,似乎也不是非常大)

最后是一些在部署上的教训

例如要好用,API的编写要符合用户APP的原始逻辑

TCP协议栈要可定制,不同环境用需要特定的工作模型

要能快速恢复等等

总的来说算是用户态协议栈如何在工业界使用的一个说明

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

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

相关文章

四十一、【进阶】索引使用SQL提示

1、SQL提示使用情景 在使用MySQL时,当一个字段参在于多个索引中时,默认情况下,MySQL会自动选择一个索引,但我们可以指定索引吗?可以忽略某一种索引吗? 答案是可以的。 前提:profession字段已经…

Security ❀ DNS协议常见DOS攻击详解

文章目录 1. DNS协议基础概述2. DNS报文详解2.1. DNS Request 请求包2.2. DNS Reply 响应包 3. DNS Request Flood3.1. 攻击原理3.2. 防护方法3.2.1. TC源认证3.2.2. 被动防御3.2.3. CNAME防护模式3.2.4. *CANME类型解析过程 4. DNS Reply Flood4.1. 攻击原理4.2. 防护方法 5. …

Vue 自动登录示例

router.beforeEach((to, from, next) > {if (to.meta.title) {document.title "xxxxx" to.meta.title;}let token window.sessionStorage.getItem(userInfo);// 如果没有token 并且没有任何响应 就要去action中自动登录if (!token) {const loginForm {usernam…

Mac电脑怎么运行 Office 办公软件

虽然 Office 软件也有 Mac 版本的,但是有蛮多小伙伴用起来还是感觉不得劲,毕竟接触了太久的 Windows,所以想要使用 Windows 版本的 Office 软件。 今天就给大家介绍一下怎么在 Mac 电脑中运行 Windows 版本的办公软件,在这里就需…

“泰山众筹:引爆全球的财富狂潮!“

想象一下,你手中的白酒不再只是简单的饮品,而是一份珍贵的投资,一份充满惊喜的冒险,一份财富的种子!在这个神奇的时刻,让我们一起探索泰山众筹模式的魅力! 在传统的投资领域,你是否…

历年网规上午真题(2017年)

解析:D/C 计算机主要性能指标:时钟频率(主频)、运算速度、运算精度、内存大小、数据处理速率(PDR)等 数据库主要指标:最大并发、负载均衡能力、最大连接数等 解析:A 敏捷开发是一种应对快速变化的需求的一种软件开发方法,是一种以人为核心、迭代、循序渐进的开发方…

Linux shell编程学习笔记19:until循环语句

Linux shell编程中的until语句,在功能上与其它编程语言一致,但在结构与其它编程语言又不太一样。在大多数编程语言中,until语句的循环条件表达式一般位于循环体语句的后面,但是在Linux shell编程中,until语句的循环条件…

大厂面试题-Netty中Reactor模式的理解

Reactor其实是在NIO多路复用的基础上提出的一个高性能IO设计模式。 它的核心思想是把响应IO事件和业务处理进行分离,通过一个或者多个线程来处理IO事件。 然后把就绪的事件分发给业务线程进行异步处理。 Reactor模型有三个重要的组件: Reactor&#…

HTTP/HTTPS、SSL/TLS、WS/WSS 都是什么?

有同学问我,HTTP/HTTPS、SSL/TLS、WS/WSS 这都是些什么?那我们就先从概念说起: HTTP 是超文本传输协议,信息是通过明文传输。HTTPS 是在 HTTP 的基础上信息通过加密后再传输。SSL 是实现 HTTPS 信息传输加密的算法。TLS 是 SSL 的…

UDP网络编程的接受与发送信息

/发送端B>可以接受数据 public class UDPSenderB {public static void main(String[] args) throws IOException {//创建一个DatagramSocket 对象,准备发送和接受数据DatagramSocket socket new DatagramSocket(9998);//将需要发送的数据,封装到Data…

数字化时代,谈谈数据资产这件事

在全球数字化转型的大趋势下,数据交易市场有望推动数据要素价值的开放共享和流通。据信通院测算,2021年全球47个重要经济体的数字经济增加值规模高达 38.1 万亿美元,我国2021年数字经济规模也已达到7.1万亿美元。数据之于数字经济的价值不言而…