Key Takeaways

  1. 华为云联合上海交大,首次提出 Open Serverless Benchmark Initiative (OSBI) ,推动Serverless基准测评规范化、标准化;
  2. OSBI由自定义度量规范 (Metric Specification, MS),自定义基准规范 (Pillar Specification, PS), 和自定义模型(Model)组成;
  3. OSBI发布首个跨平台的Serverless基准测评系统ServerlessBench 2.0, 聚焦FaaS关键特性,提供丰富的测评基准和指标,并发布了针对四大开源Serverless平台的首批测评报告;
  4. OSBI ServerlessBench 2.0是“服务器无感知创新计划”的首个亮相项目, 该创新计划旨在联合产学研用各方,推动通用全场景Serverless技术的发展和规范化建设。

背景

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

Open Serverless Benchmark Initiative

为推动开放、开源、跨平台兼容的Serverless基准测评的规范化、标准化建设,华为云与上海交大联合提出业界首个Open Serverless Benchmark Initiative (OSBI)。OSBI包含两个规范和一个模型:自定义度量规范 (Metric Specification, MS),自定义基准规范 (Pillar Specification, PS), 和自定义模型 (Model), 如图1所示。

图1: OSBI - Open Serverless Benchmark Initiative

其中,自定义度量规范为Serverless特性指标的设计提供了规范化接口和扩展标准;自定义基准规范为测评场景用例的设计提供了标准化模板;自定义模型旨在提供统一的、跨平台兼容的指标设计和用例部署标准,包括多平台的接入标准和基准用例的生命周期管理标准等。同时,OSBI支持申明式测评配置,以及一键式跨平台的对比分析。

ServerlessBench 2.0 发布

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

同时,OSBI 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提供包括资源需求(Bench Pillar 1-varied resource needs),数据迁移开销(Bench Pillar 5-Data transfer costs), 和 CPU争用(Bench Pillar 12-CPU contention)等在内的12类基准,如表1所示。

表1:ServerlessBench 1.0 提供的12类基准

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

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

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

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

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

表2:ServerlessBench 2.0 新增5类跨平台测试基准

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

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

1.冷、热启动时延

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

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

2. 冷、热执行时延

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

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

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

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

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

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

4. 弹性扩容能力

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

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

5.平台性价比

利用Numpy Matmul,逐步调整给函数所分配的资源数量,测量并观察资源数量对函数的执行时延(图8)与函数实例成本(图9)的影响。该用例反映的是相同资源开销下,函数在不同Serverless平台上的性能表现。图8和图9展示了在OpenFaaS和Knative上的部分结果。

图8:OpenFaaS和Knative“平台性价比:资源与执行时长”测评结果

图9:OpenFaaS和Knative“平台性价比:资源与实例成本”测评结果

未来规划

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

此次OSBI和ServerlessBench 2.0的发布,旨在联合社区共建Serverless基准测评的规范与标准。华为云结合自身丰厚的技术积累与多年的发展经验,积极参与、主导相关技术及其服务的规范建设和标准制定, 如FunctionGraph与CNCF Serverless Workflow携手开拓Serverless编排新时代[7]。同时,我们期待与更多的Serverless爱好者及从业人员共同推动OSBI和ServerlessBench 2.0的繁荣发展。

参考链接:

[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

[7].   https://bbs.huaweicloud.com/blogs/336135

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

Open Serverless Benchmark Initiative: 华为云联合上海交大发布ServerlessBench 2.0的更多相关文章

  1. ServerlessBench 2.0:华为云联合上海交大发布Serverless基准测试平台

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

  2. 华为云Stack新版发布:构筑行业云底座,共创行业新价值

    摘要:在以"政企深度用云,释放数字生产力"为主题的华为云Stack战略暨新品发布会上,华为云提出深度用云三大关键举措,并发布华为云Stack 8.2版本,以智能进化推动创造行业新价 ...

  3. 企业应用可观测性利器!华为云CodeArts APM发布

    摘要:近日,华为云全链路应用性能管理服务CodeArts APM全新上线,提供端到端的全链路性能管理服务,涵盖前端监控.应用性能监控,全面拥抱开源生态. 本文分享自华为云社区<企业应用可观测性利 ...

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

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

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

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

  6. 华为云ModelArts2.0来袭

    [摘要] modelarts自发布以来,不断地更新增加新的功能来为AI工程师们带来新的服务,在这次的全联接大会上EI服务产品部总经理贾永利宣布--华为云AI重装升级,并重磅发布一站式AI开发管理平台M ...

  7. 华为云GaussDB(DWS)内存知识点,你知道吗?

    前言 在日常数据库的使用中,难免会遇到一些内存问题.此次博文主要向大家分享一些华为云数仓GaussDB(DWS)内存的基本框架以及基本视图的使用,以便遇到内存问题后可以有一个基本的判断. 注意,本篇博 ...

  8. 【智简联接,万物互联】华为云·云享专家董昕:Serverless和微服务下, IoT的变革蓄势待发

    摘要:Serverless.微服务,这些新技术和IoT有什么关系?纵观IoT行业的发展,云服务又扮演了什么角色? IoT并不是一个新名词.新技术,很长一段时间,它甚至给人一种"下工地&quo ...

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

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

  10. 华为云发布冷启动加速解决方案:助力Serverless计算速度提升90%+

    摘要:本文介绍了华为云对冷启动优化这一业界难题的探索之路,创新提出了基于进程级快照的优化方案. 作者信息-- 子游:华为元戎高级工程师 平山:华为云中间件 Serverless 负责人 琪君:华为元戎 ...

随机推荐

  1. 【分段传输】c#使用IAsyncEnumerable实现流式分段传输

    引言 在使用SSE的时候,前端可以实现流式传输,但是有个问题就是这是一个独占的连接,相当于如果你不手动关闭连接,就会一直请求,一直连接调用接口,而且发送的数据格式也是按照定义好的协议来,而使用c#自带 ...

  2. 【matplotlib 实战】--热力图

    热力图,是一种通过对色块着色来显示数据的统计图表.它通过使用颜色编码来表示数据的值,并在二维平面上呈现出来.热力图通常用于显示大量数据点的密度.热点区域和趋势. 绘图时,一般较大的值由较深的颜色表示, ...

  3. could not chdir to home directory /home/user:permission denied /bin/bash:Permiss 的原因和解决方法

    今天在vm上登录一个user 的时候,发现正确输入用户名和密码后弹出了这样的信息,登陆不上. 发现给出的信息中,permission denied 而 bin permiss; 这种情况表明自己给该用 ...

  4. CF1610B [Kalindrome Array]

    Problem 题目简述 给你一个数列 \(a\),有这两种情况,这个数列是「可爱的」. 它本身就是回文的. 定义变量 \(x\),满足:序列 \(a\) 中所有值等于 \(x\) 的元素删除之后,它 ...

  5. ceph的应用

    创建 CephFS 文件系统 MDS 接口 -------------------- 创建 CephFS 文件系统 MDS 接口 -------------------- //服务端操作 1)在管理节 ...

  6. 【uniapp】【外包杯】学习笔记day08 | 初具雏形+后期任务

    总的来说就是BBQ了,基本上前后端都有了阶段性成果,但是问题在于是否符合我们题目的要求,所以也需要进行很详细的改动,其次就是小程序的支付功能以及登录功能1还有具体配置还是不太行. 然后下载的sprin ...

  7. Netty源码学习7——netty是如何发送数据的

    零丶引入 系列文章目录和关于我 经过<Netty源码学习4--服务端是处理新连接的&netty的reactor模式和<Netty源码学习5--服务端是如何读取数据的>,我们了 ...

  8. 在.net中通过自定义LoggerProvider将日志保存到数据库方法(以mysql为例)

    在.NET中,Microsoft.Extensions.Logging是一个灵活的日志库,它允许你将日志信息记录到各种不同的目标,包括数据库.在这个示例中,我将详细介绍如何使用Microsoft.Ex ...

  9. 吉特日化MES实施--三种浪费

    在实施吉特日化MES系统的过程中,遇到各种问题,包括自身问题以及甲方问题,导致项目滞后延期的主要问题分析,汇总三种浪费: (1)  信息传递的浪费: 这个在甲方产品设计以及生产过程中出现的问题,也是我 ...

  10. springMvc报错

    这个报错困扰了我大概一天,主要是刚开始没抓到主要原因,是因为自己的项目结构出现了问题, 导致找不到应有的东西,另一方面就是maven的问题,将maven解决后这个就能用了. 具体解决在https:// ...