前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >关于 AWS Lambda 中的冷启动,你想了解的信息都在这!

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

作者头像
donghui
修改2021-01-07 10:10:13
1.2K0
修改2021-01-07 10:10:13
举报
文章被收录于专栏:donghui的博客donghui的博客

原文: 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/

本文系外文翻译,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文系外文翻译前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
私有网络
私有网络(Virtual Private Cloud,VPC)是基于腾讯云构建的专属云上网络空间,为您在腾讯云上的资源提供网络服务,不同私有网络间完全逻辑隔离。作为您在云上的专属网络空间,您可以通过软件定义网络的方式管理您的私有网络 VPC,实现 IP 地址、子网、路由表、网络 ACL 、流日志等功能的配置管理。私有网络还支持多种方式连接 Internet,如弹性 IP 、NAT 网关等。同时,您也可以通过 VPN 连接或专线接入连通腾讯云与您本地的数据中心,灵活构建混合云。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档