摘要:华为云联合上海交大重磅推出ServerlessBench 2.0,为社区提供涵盖12类基准测试用例、新增5大类跨平台测试用例、4大类关键特性指标、且多平台兼容的Serverless开放基准测试集。

Highlights

  1. 华为云联合上海交大研究团队,发布业界首个面向多平台的Serverless基准测试系统ServerlessBench 2.0;
  2. ServerlessBench 2.0聚焦Serverless计算中的关键特性和指标,提供统一测试接口,兼容多平台的异构性,提供完善的测试指标和丰富的场景用例;
  3. 作为“服务器无感知创新计划”的首个亮相项目,ServerlessBench 2.0旨在为Serverless平台和应用的设计提供度量依据和有效启发;
  4. 此次发布同时展示了ServerlessBench 2.0针对四大开源Serverless平台的测评报告,作为首批测评结果。

背景

受益于其按用付费 (pay-per-use)、自动弹性伸缩 (auto-scaling)、以及屏蔽后端复杂性的特征,Serverless 正成为下一代云计算的新范式[1]。与此同时,能够封装并兼容多平台、支持关键指标度量的基准测试系统,对于Serverless计算实现可持续的降本增效而言,至关重要。一方面,Serverless系统设计者可以利用基准测试平台,刻画系统的关键性能指标,如冷/热启动时延、弹性速度、QoS保证下的最大并发等,为增强系统架构的性能提供 “度量先行”的有效工具;另一方面,Serverless应用开发者可以借助基准测试对不同的Serverless平台进行对比和选择,从而设计并开发出更加高性能、低成本的Serverless应用程序。

ServerlessBench 2.0 发布

ServerlessBench 1.0是业界首个针对Serverless计算的关键特性和指标而设计的基准测试平台,由上海交通大学的研究团队发表于云计算顶级会议SoCC 2020[2]。此次,华为云联合上海交大,在ServerlessBench 1.0的基础上,通过进一步的封装、抽象、扩展和强化,重磅推出ServerlessBench 2.0,为社区提供涵盖12类基准测试用例、新增5大类跨平台测试用例、4大类关键特性指标、且多平台兼容的Serverless开放基准测试集。

同时,ServerlessBench 2.0是“服务器无感知创新计划”的首个亮相项目成果。服务器无感知创新计划由中国信通院、上海交大、华为云等主导成立,旨在联合产学研用各方,凝聚社区力量,围绕技术研究和标准制定等,促进Serverless的蓬勃发展和规范化建设[3]。

ServerlessBench 2.0 介绍

ServerlessBench考虑Serverless计算中的四大类关键指标:通信性能(communication performance),启动时延(startup latency),无状态开销 (stateless overhead),和资源使用效率 (resource utilization)。复杂的Serverless应用一般由多个函数组合实现,因此,通信性能指标主要度量函数间通信的效率问题,如常见的函数组合模型sequence chain和nested chain等。Serverless函数通常运行时间较短,大多集中在百毫秒级至秒级的范围[4],且函数执行环境按需加载,自动扩容,因此冷启动、热启动等时延开销是Serverless系统和应用最为关注的性能指标之一。在无状态开销指标中,通常包括依赖外部存储服务进行传递的显式状态(如函数逻辑本身所涉及的状态),以及可能影响系统性能的隐式状态(如会话缓存等)。资源使用效率指标主要衡量性价比问题,对于平台,如何在函数混合部署且保证业务QoS的前提下提升资源利用率,对用户而言,如何配置资源数量来使得应用性能和成本之间取得最佳平衡。

围绕四大类关键指标,ServerlessBench提供包括资源需求(Test Case 1-varied resource needs),数据迁移开销(Test Case 5-Data transfer costs), 和 CPU争用(Test Case 12-CPU contention)等在内的12类基准测试用例,如表1所示。

表1:ServerlessBench 1.0 提供的12类基准测试用例

为良好地兼容多平台, ServerlessBench 2.0提供了统一的测试接口,对不同Serverless平台之间的异构性进行封装,包括统一的函数接口、统一的返回格式,统一的资源配置,以及统一的依赖包装等,如图1所示。这里以开源Serverless系统为例。

图1:ServerlessBench 2.0的多平台兼容性(以开源Serverless系统为例)

具体以函数调用入口为例,如图2所示,四大开源Serverless平台OpenWhisk,OpenFaaS, Knative,Fission的入口函数都不相同。针对该场景,ServerlessBench 2.0通过接口抽象,封装了统一的入口函数 def handler(event, context)(这里以Python为例),从而使得在跨平台的对比中,无须再关心平台之间的接口差异性。

图2:ServerlessBench 2.0为多平台提供统一的函数调用入口(以Python为例)

在多平台兼容的基础上,ServerlessBench 2.0对表1所列的测试用例进行了扩展,新增了冷热启动开销、冷热执行开销、保证QoS的最大并发、扩容速度、性价比等5大类跨平台的新用例,如表2所示;同时,更多跨平台用例还在持续扩展中,如带有函数链的Serverless应用等。

表2:ServerlessBench 2.0 新增5类跨平台测试用例

首批针对开源Serverless平台的评测结果

作为ServerlessBench 2.0的首批测评结果,我们此次选取四大serverless开源平台OpenWhisk,OpenFaaS,Knative,Fission,作为评测对象,部分关键测评结果展示如下。

1.冷、热启动时延

测试从调用 invoke 指令到函数的第一条指令的时间差。图3所展示的结果为 p90 的时延开销。可以看到,OpenFaaS在冷热启动性能上表现最差;得益于资源池预热技术,Fission在冷启动性能上表现最佳。

图3:四大Serverless开源平台“冷、热启动时延”测评结果对比

2.冷、热执行时延

利用 Float Operation,测量函数本身的运行时延,考察冷、热启动对函数执行时间的影响,结果如图4所示。OpenWhisk和OpenFaaS上函数执行时延基本不受冷热启动的影响。但相比于冷启动,Knative和Fission在热启动的情况下,执行时延都有所改善。

图4:四大Serverless开源平台“冷、热执行时延”测评结果对比

3.请求并发数对QoS的影响

利用 Float Operation,计算不同并发数下函数实例的p90时延,该用例度量的是平台的函数密度支持能力。从图5可以看到,除Fission外,其它三大平台上,随并发请求数的增长,函数实例的p90时延基本呈线性增长。同“冷、热启动时延”的结果相似,由于Fission预置了一部分通用资源池,在并发请求数增长的初期,函数p90时延没有明显增长;但随着并发数的继续增长,资源池被逐步消耗,直至需要进行补充时,时延出现显著增长。

图5:四大Serverless开源平台“请求并发数对QoS的影响”测评结果对比

这里需要指出,在各大云服务提供的Serverless或函数系统中,请求并发数对函数执行时延或业务QoS的影响是一个更加复杂的过程,还包括其它多个影响因素,如单实例并发数,最大并发实例数限制,平台扩容策略,实例调度策略等。

4.弹性扩容能力

利用 Float Operation,测试并观察实例数量从1伸缩到某个较大值的过程中,多实例启动尾时延的大小。图6展示OpenFaaS和Knative从1个实例弹性扩容到10个实例的结果。

图6:OpenFaaS和Knative “弹性扩容能力”测评结果对比

5.平台性价比

利用Numpy Matmul,逐步调整给函数所分配的资源数量,测量并观察函数的执行时延与分配资源的对应关系,该用例反映的是相同资源开销下的性能表现。图7展示了在OpenFaaS和Knative上的部分结果。

图7:OpenFaaS和Knative “平台性价比”测评结果对比

未来规划

ServerlessBench 2.0建立在开源开放的理念之上,将由社区共同运营并持续共建。同时,华为云将继续联合上海交大,推出针对各大公有云服务的Serverless平台的测评报告,并贡献给社区。另外,我们正在为ServerlessBench 2.0建立项目主页,并推动源码开源等工作。关于ServerlessBench 1.0的详细信息,可参见项目主页[5]和github主页[6]。

[1].   Schleier-Smith, et al. (2021). What serverless computing is and should become: The next phase of cloud computing. Communications of the ACM, 64(5), 76-84.

[2].   Yu, T., et al. (2020). Characterizing serverless platforms with ServerlessBench. In Proceedings of the 11th ACM Symposium on Cloud Computing (pp. 30-44).

[3].   https://mp.weixin.qq.com/s/vuhqCweenT7sozNzInavyQ

[4].   Shahrad, M., et al. (2020). Serverless in the wild: Characterizing and optimizing the serverless workload at a large cloud provider. In 2020 USENIX Annual Technical Conference (USENIX ATC 20) (pp. 205-218).

[5].   https://serverlessbench.systems/

[6].   https://github.com/SJTU-IPADS/ServerlessBench

点击关注,第一时间了解华为云新鲜技术~

ServerlessBench 2.0:华为云联合上海交大发布Serverless基准测试平台的更多相关文章

  1. 华为云对Kubernetes在Serverless Container产品落地中的实践经验

    华为云容器实例服务,它基于 Kubernetes 打造,对最终用户直接提供 K8S 的 API.正如前面所说,它最大的优点是用户可以围绕 K8S 直接定义运行应用. 这里值得一提是,我们采用了全物理机 ...

  2. 阿里云在云栖大会发布SaaS加速器3.0版最新成果,让天下没有难做的SaaS

    2019年杭州·云栖大会顺利落幕,超过6万人次观展,200余位顶尖科学家分享了前沿技术.作为“阿里云不做SaaS”,坚持“被集成”战略的落地体现,阿里云SaaS加速器在云栖大会现场发布了SaaS加速器 ...

  3. 华为云发布桌面IDE-CodeArts

    摘要:华为伙伴暨开发者大会2022,发布华为云桌面IDE-CodeArts. 本文分享自华为云社区<华为云发布桌面IDE-CodeArts,让连接更简单.编码更智能>,作者: Huawei ...

  4. “3+3”看华为云FusionInsight如何引领“数据新基建”持续发展

    摘要:一个统一的现代化的数据基建需要三类架构来实践三种不同的应用场景. 近期,美国知名科技企业风投机构A16Z总结出一套通用的技术架构服务,分为以下三种场景. 一.数据基建架构全景 数据流向显示,左侧 ...

  5. 升级的华为云“GaussDB”还能战否?

    摘要:芯片.操作系统.数据库是现代信息技术领域的三大核心基础,做数据库,不仅需要技术和投入,对华为这种做通讯起家的企业,更需要的是一种并非玩票性质的态度. GaussDB,不仅蕴含着华为对数学和科学的 ...

  6. 华为云亮相QCon2020深圳站,带你体会大厂的云原生玩法与秘诀

    摘要:在QCon全球软件开发大会上,华为云开发者生态总监张全文作为"云原生应用开发实践"专题出品人,携手华为云四位资深技术专家带来精彩分享. 作为当下技术领域最火热的技术趋势之一, ...

  7. CC2530_ZigBee+华为云IOT:设计一套属于自己的冷链采集系统

    摘要:以CC2530单片机为核心器件,设计一个冷链环境信息采集系统,利用传感器技术对冷藏仓内的环境参数进行采集,上传到华为云物联网云平台,然后通过手机端或移动端进行显示,便于分析,观察冷链环境信息. ...

  8. 华为云ROMA,联接企业应用的现在与未来

    2019.9.19日,在华为全联接大会的华为云Summit中,华为云CTO宇昕总提出:"企业的应用与数据集成,始终是数字化转型和智能化升级的关键,华为云企业应用与数据集成平台ROMA,打破时 ...

  9. 【华为敏捷/DevOps实践】7. 敏捷,DevOps,傻傻不分清楚【华为云技术分享】

    文:姚冬(华为云DevCloud首席技术布道师,资深DevOps与精益/敏捷专家,金融解决方案技术Leader,中国DevOpsDays社区核心组织者) 前言 敏捷是什么?DevOps是什么?两者有什 ...

随机推荐

  1. 有关 ThreadLocal 的一切

    早上好,各位新老读者们,我是七淅(xī). 今天和大家分享的是面试常驻嘉宾:ThreadLocal 当初鹅厂一面就有问到它,问题的答案在下面正文的第 2 点. 1. 底层结构 ThreadLocal ...

  2. FinClip 前端之 VUE 核心原理总结

    小程序框架有很多,都是支持前端JavaScript语言的,也是支持 vue.js 框架的.FinClip 小程序是兼容各家平台的.所以在学习了框架使用之后的进阶就要熟悉框架的底层原理. 1.数据响应式 ...

  3. CentOS7防火墙firewalld的配置

    开机启动的开启与禁止 # 开机启动 systemctl enable firewalld # 禁止开机启动 systemctl disable firewalld 基本操作 # 查看状态 system ...

  4. 图解Dijkstra(迪杰斯特拉)算法+代码实现

    简介 Dijkstra(迪杰斯特拉)算法是典型的单源最短路径算法,用于计算一个节点到其他所有节点的最短路径.主要特点是以起始点为中心向外层层扩展,直到扩展到终点为止.Dijkstra算法是很有代表性的 ...

  5. python之装饰器补充与递归函数与二分查找

    目录 多层装饰器 有参装饰器 递归函数 基本演示 斐波那契数列 总结 小拓展 算法之二分法 简介 举例 总结 多层装饰器 我们已经知道了语法糖的作用是将装饰对象自动装饰到装饰器中,一个语法糖的应用我们 ...

  6. python目录索引

    python目录索引 python基础数据类型1 目录 part1 part2 运算符 格式化 part3 字符串 字符串常用操作方法 part4 列表 列表的创建: 列表的索引,切片 列表的增删改查 ...

  7. SpringCloud Alibaba Sentinel 限流详解

    点赞再看,养成习惯,微信搜索[牧小农]关注我获取更多资讯,风里雨里,小农等你,很高兴能够成为你的朋友. 项目源码地址:公众号回复 sentinel,即可免费获取源码 熔断规则 在上一篇文章中我们讲解了 ...

  8. Spring Security OAuth正式终止维护,已从官网下架

    Spring Security团队正式宣布Spring Security OAuth终止维护. 目前官网的主页已经高亮提醒彻底停止维护. 旧的Spring Security OAuth项目终止到2.5 ...

  9. ESP8266 系统环境搭建

    1. 前言 因为ESP8266/ESP32这个开发环境没少折腾,是真没见过这么难搞又不清晰的环境. 简单开发可以使用Arduino IDE ,这个平台还是挺好的.开发使用Arduino的函数库,很高效 ...

  10. mac mini 装UBUNTU后没有WIFI解决办法

    1.在终端中运行如下命令,重新安装b43相关的全部驱动和firmware: 复制代码 代码如下: sudo apt-get install bcmwl-kernel-source #Broadcom ...