阿里巴巴操作系统团队一直致力于建立和完善系统领域工业界和学术界的纽带,也在持续实践工业界和学术界之间的问题分享和工作互动,并希望通过这些分析和互动能够更好地促进中国在计算机系统领域的整体发展和创新。
目前,操作系统团队有很多工作正在持续进行中,这些工作几乎覆盖了操作系统的内核,虚拟化,容器,网络,存储,调度,安全,性能优化,故障诊断等多个方向。在 2019 年,阿里云操作系统团队共有 4 篇论文被不同的会议接收(按论文被接收顺序倒排):IPDPS'20 (CCF-B),ASPLOS'20(CCF-A), Cluster'19 (CCF-B),ESEC/FSE'19 (CCF-A)。本文是对这些工作的一个介绍和总结。
一、IPDPS'20
第 34 届 IPDPS 会议计划于05/18/2020 在美国新奥尔良召开,由于新冠肺炎影响已经改为了线上。IPDPS 是并行和分布式计算方向计算机系统领域的旗舰会议,我们的一篇论文被接受,论文信息如下:
Zijun Li, Quan Chen, Shuai Xue, Tao Ma, Yong Yang, Zhuo Song, Minyi Guo.
Amoeba:QoS-Awareness and Reduced Reseource Usage of Microservices with ServerlessComputing. [IPDPS'20]
这篇论文是和上海交大并行计算研究所合作的论文之一。由于微服务架构较高的可维护性和灵活性,越来越多的 QoS 应用按照此模式被细粒度的分解,在云上以 IaaS 或者 Serverless 的模式部署。
我们发现对于这两种部署模式,分别有着对应的优缺点:IaaS 能够处理高负载的应用,但由于其长期的资源占用,在低负载时存在着大量的资源浪费;而 Serverless 实现动态的调整资源占用,在空闲时自动释放以保证其高利用率,但由于其运行时虚拟化的影响和云厂商的资源限制,通常无法承受高负载的应用。这样对于一个负载有着昼夜模式变化的应用,在高负载时基于 IaaS 模式、低负载时基于 Serverless 模式部署的方式不仅节省了大量资源(对于云厂商),而且降低了成本。
但两种部署模式的结合,存在着一些挑战,比如:Serverless 的平台状态不是固定的,应用的 QoS 和性能表现在程序实际部署到平台之前是未知的;Serverless 平台中容器级别的虚拟化无法完全避免资源竞争,用户应用可能受多方面行为影响导致 QoS 违反;如何实时根据用户负载的变化,快速、低开销的实现部署模式迁移。我们提出了基于运行时负载和敏感度的预测模型,实现了在 runc/serverless 和 runv/IaaS 之间的动态负载均衡,并最终在 serverless 和弹性计算场景下与传统 IaaS 相比大幅降低了 cpu 和内存的占用(分别多达 70% 和80%)。
目前论文作者之一薛帅同学正在操作系统团队实习,同时上海交大的陈全老师也在操作系统团队担任访问学者,我们正在针对阿里内部业务开展更深入的合作,后续还将有一系列的工作成果发表。
二、ASPLOS'20
第25 届 ASPLOS 会议原定于2020年3月16日在瑞士洛桑举行,由于全球新冠肺炎的影响,会议有史以来第一次全部采用了别开生面的远程视频方式。ASPLOS 是操作系统、体系结构和编程语言三个方向综合的计算机系统领域顶级会议,推动了计算机系统多项关键技术的发展,我们的一篇论文被接受,论文信息如下:
Teng Ma, Mingxing Zhang, Kang Chen, Zhuo Song, Yongwei Wu, XuehaiQian.
AsymNVM: An Efficient Framework for Implementing Persistent DataStructures on Asymmetric NVM Architecture. [ASPLOS'20]
这篇论文是和清华高性能所合作完成的。由于新兴的非易失性内存模糊了内存和存储之间的界线,这些类型的存储器,例如 Intel Optane DC,相变存储器(PCM),自旋转移矩磁存储器(STTM)是字节可寻址的,并同时提供类似于 DRAM 的性能、高密度和持久性。
为了发挥非易失性内存的潜力,现有解决方案将非易失性内存直接连接到处理器,从而可以使用本地存储器上的加载和存储指令来实现持久性数据结构的高性能实现。虽然通过本地内存访问非易失性内存提供了足够的性能,但由于非易失性内存不能够方便的在数据中心中共享,同时由于非易失内存高密度的特性,它可以提供更大的容量,这可能会超出单个服务器的需求。在数据中心服务器中,资源利用率会比较低,比如 Google 的研究显示资源利用率平均低于 40%。我们预计持续的资源利用将遵循相同的趋势。
传统的分布式的(对称结构)的存储/内存系统本质上也有一样的资源利用率的问题,同时由于实现的复杂性,数据多重复制和网络传输的影响,性能比较难以达到极限。我们因此第一次提出了利用 RDMA 将数据中心的 NVM 做disaggregation, 实现了高效的框架,同时证明了这种新架构的可行性。操作系统团队是阿里 RDMA 技术的先行者和推广者,主要作者马腾同学一直在操作系统团队实习。
AsymNVM 与传统架构相比:
1. AsymNVM 能够共享 NVM 资源,并且它可以确保具有多个后端的可用性,并且由于架构和接口的简化可以使后端更加可靠。
2. 由于采用了基于 RDMA 解耦的架构,前端节点一直以接近 100% 的CPU占用率运行,后端只会产生非常小的 CPU 占用率,大概 < 10%,能够支持更多前端。
3. 同简单的直接使用远程直接内存访问技术来访问远端非易失内存的实施方式相比,AsymNVM 提供超过 6 倍的性能提升。
4. AsymNVM 在交易基准 SmallBank 中将吞吐量提高到 1.42 倍,在 TATP 中将吞吐量提高到 12.5 倍。
三、Cluster'19
第 21 届 Cluster 会议于2019年9月23日在美国阿尔伯克基召开。Cluster 是高性能计算方向计算机系统领域的主要会议,我们的一篇论文被接受,论文信息如下:
Teng Ma, Tao Ma, Zhuo Song, JingxuanLi, Huaixin Chang, Kang Chen, Hai Jiang, Yongwei Wu.
X-RDMA:Effective RDMA Middleware in Large-scale Production Environments. [Cluster'19]
这也是和清华大学高性能所合作的一篇论文。
在 2017 年开始,阿里云操作系统团队在对数据中心应用 RDMA 并对业务(当时主要是分布式存储,云盘,数据等产品)进行改造的时候发现,RDMA 编程模型相比传统网络模型复杂很多,而且由于对内存的使用方式的区别也很容易出错,如果不是特别熟悉 RDMA 软件栈,很容易用错,或者产生 bug,或者无法达到性能和资源利用的最大化,这对于大量的业务改造的工程效率和稳定性提出了很大的挑战。
同时,我们还发现传统的 RDMA 软件栈的实现在一些特性上是有缺失的,比如:相比 Tcp 缺少 keepalive 机制,在大规模场景下可能最终导致某些节点由于连接资源耗尽而拒绝服务(我们也实际发现了这样的问题);再比如:虽然网卡提供消息确认机制,但是由于缺少上层消息确认机制,对端内存不一定会在最恰当的时间(第一时间)释放,可能导致 RNR 错误,进而引起网络重传,从而影响网络整体质量;在实际生产环境中,如何快速定位和诊断 RDMA 相关的问题也是非常棘手的。
我们最终得出,在 RDMA 的实际应用中,中间件必不可少的结论。从而进一步提出并实现了统一高效的 RDMA 消息中间件 X-RDMA,解决了 RDMA 在实际生产过程中的一些关键可靠性和可用性问题,例如:极简的接口抽象,必要的上层消息确认机制,中间件辅助流控配合 DCQCN,结合生产系统的诊断机制等等,目前该技术已经被广泛应用在阿里巴巴基础云产品中(包括:数据库,分布式存储等)。
四、ESEC/FSE'19
第 27 届 ESEC/FSE 会议于2019年8月26日在爱沙尼亚塔林召开。ESEC/FSE 是软件工程领域三大顶会之一,我们的一篇论文被接收,论文信息如下:
HeyuanShi, Runzhe Wang, Ying Fu, Mingzhe Wang, Xiaohai Shi, Xun Jiao, Houbing Song,Yu Jiang, Jiaguang Sun.
IndustryPractice of Coverage-Guided Enterprise Linux Kernel Fuzzing. [ESEC/FSE'19]
这篇论文是与清华大学软件学院合作完成的。内核模糊测试作为被广泛使用的测试技术之一,在主线Linux测试中发现了大量缺陷。然而,由于企业版内核配置、功能特性、内核版本存在差异,将内核模糊测试应用到企业版linux内核中面临可用性、易用性与测试效率等方面的挑战。
这篇论文针对这些挑战,提出了相应解决方案,通过编译器版本适配与内核覆盖信息收集模块反向移植,实现了测试组件准备过程中的待测内核覆盖信息收集特性支持,满足了企业级Linux内核持续模糊测试的需求。
在工具应用实践中,我们共发现数十个企业版Linux内核中尚未发现的可复现代码缺陷,大多数缺陷已被企业开发人员修复,部分缺陷补丁已经提交合并至最新主线内核代码仓库中。本论文的工作为企业版Linux内核安全提供了有力保障,目前内核模糊测试已应用在阿里巴巴企业级Linux内核的测试过程中。参与本论文工作的施鹤远、王润哲同学一直作为项目合作实习生在操作系统团队参与团队科研工作,并即将以正式员工身份加入团队。
我们的一些研究工作已经被生产系统接受并认可,同时也有源自于生产系统的问题和创新工作在不断输出到学术界。秉承开放,创新,分享的态度,深厚的系统领域经验和强大的研发力量,以及在系统领域的全视角场景,我们真诚期望与更多的业界同仁一起携手,共创系统领域的未来! 如果对我们的研究工作感兴趣或者希望与我们探索合作的机会,欢迎广大同仁与我们联系:songzhuo.sz@alibaba-inc.com宋卓。