关于 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?
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
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/
版权声明: 本文为 InfoQ 作者【donghui2020】的原创文章。
原文链接:【http://xie.infoq.cn/article/0b7b8fd2ef61e377838a443df】。文章转载请联系作者。
评论