写点什么

关于 AWS Lambda 中的冷启动,你想了解的信息都在这!

用户头像
donghui2020
关注
发布于: 2020 年 11 月 26 日
关于 AWS Lambda 中的冷启动,你想了解的信息都在这!

原文:https://hackernoon.com/cold-starts-in-aws-lambda-f9e3432adbf0

作者:Serhat Can

译者:donghui



有许多关于 AWS Lambda 中冷启动的博客文章。我正在做一些研究,想在这里列出一些好的文章以及一些要点,以便快速了解该主题。

译注:除了原文的内容外,译者也参考了其他博客,并将其中一些有用的观点整合到该文章(特别是解决方案部分)。



什么是冷启动?

冷启动是触发函数时遇到的延迟。

仅当没有空闲容器等待运行代码时,才会发生冷启动。这一切对于用户都是不可见的,AWS 完全控制何时终止容器。



冷启动有什么影响?

  • 由于响应缓慢而使用户沮丧

  • 为速度付出更多的钱(有时)

  • 如果不仔细考虑,则会出现调用函数中的超时-连锁反应

  • 关心与你无关的运营问题



何时应该关注冷启动?

  • 如果你使用的是 Java 和 C# 之类的静态类型语言

  • 如果你有面向客户/同步的应用程序

  • 如果你的请求量少或稀疏

  • 部署新版本后(所有容器均被销毁)

  • 配置中的更改(环境变量,安全组,内存限制等),新容器必须以新的配置启动



什么因素会增加冷启动时间?

  • 语言选择

  • 内存大小

  • 代码大小

  • VPC

  • HTTPS 调用

  • 需要类路径扫描的事物(Java)



这个问题有什么解决方案吗?

首先,接受你不能保证不会遭受冷启动的感觉。最终的解决方案必须来自云提供商。我们只能尝试改进。

  • 如果这不是一个大问题,那么什么也不做(建议)

  • 等待 AWS 对其进行改进(例如 AWS 提供了预置并发功能、并针对 VPC 网络做了改进等)

  • 使用动态编程语言(例如 Python、NodeJS 或 PHP ),而不要使用静态类型的编程语言(例如:C++、C# 或 Java)

  • 使用 HTTP 而不是 HTTPS

  • 增加内存(并支付更多)

  • 做一些预热(在 AWS 没有提供预置并发之前,可以尝试定时触发函数以保持函数实例是热的)



一些有用的资源



译注:除了原作者提供的下面下面前4个链接资源外,译者也增添了一些很有参考意义的资源链接,它们对于研究冷启动都非常有帮助。



How does language, memory and package size affect cold starts of AWS Lambda?

https://read.acloud.guru/does-coding-language-memory-or-package-size-affect-cold-starts-of-aws-lambda-a15e26d12c76



Dealing with cold starts in AWS Lambda

https://medium.com/thundra/dealing-with-cold-starts-in-aws-lambda-a5e3aa8f532



Resolving Cold Start️ in AWS Lambda

https://medium.com/@lakshmanLD/resolving-cold-start%EF%B8%8F-in-aws-lambda-804512ca9b61



How to Warmup

https://docs.thundra.io/docs/how-to-warmup



Dealing With Serverless Cold Starts, Once and For All!

https://dzone.com/articles/dealing-with-serverless-cold-starts-once-and-for-a



Cold start / Warm start with AWS Lambda

https://blog.octo.com/en/cold-start-warm-start-with-aws-lambda/



AWS Lambda Performance and Cold Starts

https://dzone.com/articles/aws-lambda-performance-and-cold-starts



New for AWS Lambda – Predictable start-up times with Provisioned Concurrency

https://aws.amazon.com/cn/blogs/compute/new-for-aws-lambda-predictable-start-up-times-with-provisioned-concurrency/



Announcing improved VPC networking for AWS Lambda functions

https://aws.amazon.com/cn/blogs/compute/announcing-improved-vpc-networking-for-aws-lambda-functions/



Java Cold Starts in AWS Lambda

https://www.graycelltech.com/java-cold-starts-in-aws-lambda/



Using Amazon RDS Proxy with AWS Lambda

https://aws.amazon.com/blogs/compute/using-amazon-rds-proxy-with-aws-lambda/



Serverless in 2020 gets even better with re:Invent improvements for AWS Lambda - cold starts are "finally gone"

https://www.rwilinski.me/blog/serverless-at-reinvent-2019/





发布于: 2020 年 11 月 26 日阅读数: 26
用户头像

donghui2020

关注

公众号:ServerlessLife 2018.01.01 加入

还未添加个人简介

评论

发布
暂无评论
关于 AWS Lambda 中的冷启动,你想了解的信息都在这!