×
新网 > 主机-资讯 > 正文

防止AWS Lambda冷启动的5种方法

  • 作者:zccc
  • 来源:网络
  • 2020-08-07 15:13:53

AWS Lambda为开发人员提供了许多好处,包括可伸缩性,灵活性,更快的发布时间和降低的成本。但是,也有一些限制,例如冷启动。冷启动会增加无服务器应用程序的延迟。继续阅读以发现一

AWS Lambda为开发人员提供了许多好处,包括可伸缩性,灵活性,更快的发布时间和降低的成本。但是,也有一些限制,例如冷启动。冷启动会增加无服务器应用程序的延迟。继续阅读以发现一些改善AWS Lambda性能的技巧。

AWS Lambda如何工作?

Lambda函数在自己的容器上运行。创建新函数时,Lambda会将其打包到新容器中。然后,在受管计算机的多租户群集上执行此容器。

在功能开始运行之前,将为每个容器分配必要的CPU和RAM容量。当函数完成运行时,分配的RAM乘以函数运行所花费的时间。AWS根据分配的内存和功能运行时间向客户收费。

AWS Lambda可以同时执行同一功能或来自同一AWS账户的不同功能的许多实例。这使Lambda适合部署高度可扩展的云计算解决方案。

什么是AWS Lambda冷启动?运行Lambda函数时,只要您运行它,它就保持活动状态。这意味着您的容器保持活动状态并可以执行。一段时间不活动后,AWS可能会丢弃该容器,并且您的功能会变得不活动或处于冷状态。当您执行无效的Lambda函数时,就会发生冷启动。如果没有可用的容器,则会执行不活动的Lamda函数,并且该函数需要启动一个新容器。当有可用的容器时,蠕虫就会启动。

在冷启动中启动新容器会产生延迟。这就是为什么冷启动会使无服务器应用程序响应变慢的原因。

减少Lambda冷启动影响的5种方法您无法完全避免冷启动,但是可以通过使用以下提示来减少其持续时间和频率。至冷启动:

首选动态类型语言 -使用诸如Node.js或Python之类的语言,而不是诸如C#和Java之类的静态类型编程语言。动态类型语言会检查您在运行时键入的内容,而不是静态类型语言中的编译时。 避免使用lambda表达式在虚拟私有云(VPC) -a VPC是一个孤立的,安全的,私人托管在公共云的云。VPC将您的计算资源彼此隔离,这会增加延迟时间并导致冷启动。 避免在lambda内部进行HTTPS调用 -SSL握手和其他与安全性相关的调用会产生冷启动,因为它们受CPU能力的限制。 避免依赖-扫描类路径(如Spring)的Java依赖会导致冷启动。另外,加载Java类可能要花费一些时间,并且可能导致冷启动。 与较低的内存设置相比,在AWS Lambda上增加内存以获取更多的CPU容量 -这可以使Lambda的执行时间更快,并且可以降低成本。

如何优化AWS Lambda性能Lambda的性能不只是冷启动,这里有一些技巧可以用来提高性能。

优化内存大小Lambda使您可以增加或减少分配给函数的RAM内存量。RAM内存大小会影响功能获得的网络带宽量和CPU时间。

选择尽可能小的RAM数量可能会增加应用程序的延迟。如果增加的延迟超过节省的RAM成本,它还可能使您的应用程序更昂贵。因此,您应该通过在每种可用资源上测试Lambda函数,在应用程序的价格和性能之间找到理想的平衡点。

优化语言运行时诸如Java和C#之类的编译语言的初始启动时间很慢。诸如Python和Node.js之类的解释语言具有更快的初始启动时间。您选择的语言可能会影响应用程序的性能。

AWS Lambda支持编译和解释语言。如果您的应用程序对高峰和不频繁的流量敏感或需要低延迟,则应使用解释性语言。如果您的应用程序没有遇到流量高峰,并且您知道流量的样子,则可以使用所需的任何语言。

监控效果 监视AWS Lambda可为您提供识别可能对性能造成负面影响的问题所需的信息。您可以使用AWS X-Ray在组件级别监视应用程序。X-Ray使您能够跟踪整个执行过程中的应用程序生命周期。因此,您可以更深入地了解Lambda函数的组件,并查看诸如延迟之类的指标。

结论 有很多方法可以减少冷启动的影响。您可以使用动态类型的语言,避免依赖关系或避免在lambda内部进行HTTPS调用。但是,您无法完全消除它们。您可以通过优化内存大小,监视性能和优化语言运行时来提高整体Lambda性能。

新网箭头云服务器

  • 相关专题

免责声明:本文内容由互联网用户自发贡献自行上传,本网站不拥有所有权,也不承认相关法律责任。如果您发现本社区中有涉嫌抄袭的内容,请发送邮件至:operations@xinnet.com进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。

免费咨询获取折扣

Loading