无服务平台性能比较

本文对比了AWS Lambda、Google Cloud Functions、Azure Functions和IBM Cloud Functions等无服务供应商在运行时间、冷启动时间、依赖性和资源分配方面的性能。研究发现,不同供应商在CPU、内存、网络和存储上的策略差异显著,如AWS为高内存实例提供更多的CPU周期,而Azure则有不同的CPU分配策略。并发请求对功能平均响应时间的影响也有所不同,AWS在并发处理方面表现最佳。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

大多数主要的云服务供应商都有可以提供功能即服务(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)。第一个进站的请求获得其中一个实例,该实例负责处理这个请求。实例在处理完第一个请求后保持运行状态。不过,保持运行的时间长短因供应商不同而不同。Mikhail Shilkov在他的一篇文章中说明了Azure的冷启动时间是20分钟,而Google Cloud Functions时间则不定。AWS官方宣布的时间是5分钟,但实际时间更长,因为他们的工程团队进行了调整。当服务需要横向扩展,需要加入新的服务实例时也会发生冷启动。

\\

运行时的选择也会影响性能。Node.js应用程序不需要启动很多CPU,而.NET Core运行时需要更多内存(在AWS Lambda中)。冷启动时间随着分配的内存的增加而减少。测评表明,对于Javascript而言,AWS的冷启动时间最快,之后是GCP和Azure。

\\

查看英文原文Serverless Platforms Compared for Performance

\\

感谢无明对本文的审校。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值