【问题标题】:Lambdas calls speed changesLambdas 调用速度变化
【发布时间】:2019-10-26 21:42:10
【问题描述】:

我创建了一个从 dynamodb 读取数据的简单 lambda。

我第一次调用 lambda 大约需要 1500 毫秒才能完成,但在我再次运行 lambda 后大约需要 150 毫秒。这怎么可能?

AWS 执行什么类型的缓存响应来实现这一点?

【问题讨论】:

  • 您使用什么语言/运行时?
  • 我使用的是 Node JS 8

标签: amazon-web-services aws-lambda amazon-dynamodb amazon-cloudfront throughput


【解决方案1】:

AWS Lambda 是在您第一次调用时预置基础设施,AWS 还需要使用代码启动 JVM 才能调用该函数。启动 JVM 需要时间,因此会产生一些开销。

另一个问题是冷的,如果没有空闲容器可用等待运行代码。这对用户来说都是不可见的,AWS 可以完全控制何时终止容器。

所以在第一次调用时涉及到上述步骤,你可以看到 1500 毫秒 下次通话时,一切准备就绪,因此 lambda 会在 150 毫秒或更短的时间内为您提供响应。

这是根据无服务器设计来节省基础架构成本,仅在需要时提供基础架构并获得第一个调用。

我建议请阅读文档
- https://aws.amazon.com/lambda/

【讨论】:

    【解决方案2】:

    这是由于冷启动而发生的。这主要发生在我们在部署后第一次调用 lambda 或 lambda 函数空闲一段时间时。

    这些文章解释了 lambda 的语言、内存或大小如何影响冷启动

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

    https://mikhail.io/serverless/coldstarts/aws/

    【讨论】:

      猜你喜欢
      • 2014-04-08
      • 2022-01-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多