大多数主要的云服务供应商都有可以提供功能即服务(FaaS)的无服务平台。最近一些基准测评研究了它们之间在运行时间、冷启动时间、依赖性和资源分配方面的性能区别。
Bernd Strehl 测评 了无服务供应商AWS Lambda、Google Cloud Functions、Azure Functions 和IBM Cloud Functions之间的性能区别。这些测评使用了Node.js功能,尽管展示了不同供应商对请求负载响应的差异,但是这种测试方法所使用的样本太少,而却没有考虑到其他的一些因素,比如底层实例类型,因此受到了 质疑 。 其他团队的测评 用了不同的 方法 。
无服务供应商不仅要考虑CPU、内存和请求数量,还要考虑网络和存储。不同供应商对于如何根据特定的CPU需求来调整内存都存在差异,例如,AWS给配备较高内存的实例 提供更多的CPU周期 。Google也采用了类似的策略,而Azure对于CPU分配的策略则不同,“4-vCPU的虚拟机将分配更多CPU”。
并发请求改变了功能的平均响应时间。对于非并发请求,几乎所有的供应商资源分配都相同,除了Google大约有30%左右的偏差。对于并发请求,当同时执行50个相同的调用,AWS的计算时间增加了46%,Google和Azure分别为7%和3%,IBM为154%。其他的 测评表 明 ,AWS在并发处理方面有最好的性能表现。
冷启动时间是无服务功能在一段时间没有使用后响应第一个请求所需要的时间。研究结果表明,要维持性能不变对所有的供应商来说都是一个挑战。云供应商一般会不间断地运行一组一般性的worker(即worker pool)。第一个进站的请求获得其中一个实例,该实例负责处理这个请求。实例在处理完第一个请求后保持运行状态。不过,保持运行的时间长短因供应商不同而不同。 M ikhail Shilkov 在他的一篇 文章 中说明了Azure的冷启动时间是20分钟,而Google Cloud Functions时间则不定。AWS官方宣布的时间是5分钟,但实际时间更长,因为他们的工程团队进行了调整。当服务需要横向扩展,需要加入新的服务实例时也会发生冷启动。
运行时的选择也会影响性能。Node.js应用程序不需要启动很多CPU,而.NET Core运行时需要更多内存(在AWS Lambda中)。冷启动时间随着分配的内存的增加而减少。测评表明,对于Javascript而言,AWS的冷启动时间最快,之后是GCP和Azure。
查看英文原文: Serverless Platforms Compared for Performance
感谢无明对本文的审校。
以上所述就是小编给大家介绍的《无服务平台性能比较》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
你必须知道的213个C语言问题
范立锋、李世欣 / 人民邮电出版社 / 2010-6 / 45.00元
《你必须知道的213个C语言问题》精选了213个在C语言程序设计中经常遇到的问题,目的是帮助读者解决在C语言学习和开发中遇到的实际困难,提高读者学习和开发的效率。这些问题涵盖了C语言与软件开发、C语言基础、编译预处理、字符串、函数、键盘操作、文件、目录和磁盘、数组、指针和结构、DOS服务和BIOS服务、日期和时间、重定向I/O和进程命令、C语言开发常见错误及程序调试等内容,均是作者经过充分的调研,......一起来看看 《你必须知道的213个C语言问题》 这本书的介绍吧!