【问题标题】:AWS Lambda | lambda cold startAWS Lambda |拉姆达冷启动
【发布时间】:2022-10-04 23:12:14
【问题描述】:

我有一个不断经历冷启动的 lambda。 我将 lambda 配置为具有 5 个预置并发,因为它被建议为一种可能的解决方案,但 lambda 仍然有冷启动。

可能的解释是什么? 也许 5 个预置并发还不够? (我怎么知道什么是大量的容器?)

你是如何处理冷启动的?

另外,一个非常重要的问题:我如何确定它使用我的 lambda?我在哪里可以监控它?

谢谢!

【问题讨论】:

  • 如果您不能容忍任何冷启动,则必须将并发设置为 lambda 的最大并发。您是否曾经一次运行 lambda 超过 5 倍?是否对应冷启动?您确定您正在经历冷启动,而不仅仅是缓慢的 lambda 代码?
  • @erik258 感谢您的回复。我在 datadog 中看到我得到了很多冷启动,datadog 如何识别 lambda 的初始化(至少需要 4 分钟才能初始化)。我怎么能确定我正在经历冷启动,而不仅仅是缓慢的 lambda 冷启动?什么是一个很好的迹象?吨

标签: amazon-web-services aws-lambda concurrency cold-start


【解决方案1】:

避免冷启动的一些可能方向:

  1. 尝试让 lambdas 保持温暖 - 通过安排每 1 分钟左右对虚拟方法的 ping 调用
  2. 检查您的代码 - 由于在函数启动时将大量代码/库加载到内存中,因此会发生冷启动。尝试在调用函数时仅加载尽可能少的内容,并仅在需要时动态加载任何其他库。 (您可以通过在 node.js 中使用 require('your-lib-name-here') 或通过 C# 中的反射来做到这一点)

【讨论】:

    【解决方案2】:
    1. 您绝对可以尝试LiriB 给出的步骤来优化冷启动。

    2. 此外,您可以监控指标调用这将为您提供总调用的线索: 以下是 metric 的示例代码之一:{ "metrics": [ [ "AWS/Lambda", "Invocations", "FunctionName", "dataservice-funct-getclaimfreqpred", "Resource", "function_name:alias", { "color": "#2ca02c" } ], [ ".", "ConcurrentExecutions", ".", ".", ".", ".", { "color": "#9467bd" } ], [ ".", "Errors", ".", ".", ".", ".", { "stat": "Average", "color": "#ff7f0e" } ], [ ".", "Duration", ".", ".", ".", ".", { "stat": "Average", "color": "#1f77b4" } ] ], "view": "timeSeries", "stacked": false, "region": "region_name", "stat": "Sum", "period": 300, "title": "title" }

    3. 此外,您可以关注auto-scaling-provisioning 进行自动缩放

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-04-14
      • 2021-11-06
      • 2019-11-21
      • 2020-07-02
      • 2017-08-28
      • 1970-01-01
      • 1970-01-01
      • 2020-05-18
      相关资源
      最近更新 更多