无服务平台性能比较

news/2024/5/20 9:50:50 标签: serverless, javascript, 运维

大多数主要的云服务供应商都有可以提供功能即服务(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

\\

感谢无明对本文的审校。


http://www.niftyadmin.cn/n/989607.html

相关文章

B/S结构一机多屏实现,Applet实现。

上一篇讨论了如何实现B/S结构的一机多屏,下面讨论一下具体的实现方法,由于作者是做Java开发的,所以采用Applet来实现一机多屏的效果。 采用Applet获取客户端的屏幕,然后用拼装成自己需要的字符串。举例如下: View Code…

Java并发(十二):CAS Unsafe Atomic

一、Unsafe Java无法直接访问底层操作系统,而是通过本地(native)方法来访问。不过尽管如此,JVM还是开了一个后门,JDK中有一个类Unsafe,它提供了硬件级别的原子操作。 这个类尽管里面的方法都是public的&…

Mysql探索(一):B+Tree索引

MySQL是目前业界最为流行的关系型数据库之一,而索引的优化也是数据库性能优化的关键之一。所以,充分地了解MySQL索引有助于提升开发人员对MySQL数据库的使用优化能力。 MySQL的索引有很多种类型,可以为不同的场景提供更好的性能。而B-Tree索引…

《30天自制操作系统》之——第3天

第三天操作系统的开发才慢慢步入正轨,当然这一天的内容和难度较前两天明显增加,还有一些汇编语言中不好理解的知识点,所以第三天的学习内容要详细的记录一下。 切入正题! ------------------------------------------------------…

LeetCode --- 338. Counting Bits

338. Counting Bits Difficulty: Medium Given a non negative integer number num. For every numbers i in the range 0 ≤ i ≤ num calculate the number of 1’s in their binary representation and return them as an array. Example 1: Input: 2 Output: [0,1,1]Ex…

java_ATM_GUI

Test 界面: import java.awt.Menu; import java.io.BufferedReader; import java.io.File; import java.io.FileReader; import java.io.FileWriter; import java.io.Reader; import java.io.Writer; import java.util.ArrayList; import java.util.List;import jav…

JMeter启动时显示Could not open/create prefs root node Software\JavaSoft\Prefs at root 0X80000002...

在windows 7上启动jmeter时&#xff0c;提示错误&#xff1a; Java.util.prefs.WindowsPreferences <init> WARNING: Could not open/create prefs root node Software\JavaSoft\Prefs at root 0 x80000002. Windows RegCreateKeyEx(...) returned error code 5. 原因&am…

day8网络编程,面向对象1

一.只是回顾 1.导入模块的顺序,首先从当前目录下找,再从环境变量里面找,使用"sys.path.insert(0,需要导入的环境变量)"加入需要导入文件的环境变量; 2.如果不同项目中有相同的文件,需要导入文件,需要将非当前项目中右键添加的环境变量取消,将当前的环境变量添加上去;…