【问题标题】:AWS Lambda Hot and Cold StartAWS Lambda 热启动和冷启动
【发布时间】:2020-02-24 20:04:32
【问题描述】:

您好,我是 AWS Lambda 新手。我想知道热 Lambda 函数(热启动)和冷 Lambda 函数(冷启动)是什么意思?谁能详细解释一下Hot Lambda和Cold Lambda有什么区别

【问题讨论】:

    标签: amazon-web-services aws-lambda


    【解决方案1】:

    上传您的代码后或一段时间不活动后,您的 Lambda 将关闭或“冷”。当一个新事件出现时,Lambda 会启动一个新的代码实例——这包括初始化 AWS 为启动“容器”所做的任何事情以及初始化您上传的代码。

    因此,理论上,能够触发已初始化(“热”)Lambda 的事件比触发冷事件处理得更快。无法保证 Lambda 在最后一个事件之后会保持热状态多长时间,但可能长达 5 分钟。

    【讨论】:

    • 另外请注意,如果您增加内存量,AWS Lambda 在冷启动时会启动得更快。因此,为不经常访问增加 lambda 内存,并在您有更多流量并且您的 lambda 温暖时减少它
    • @adnan,你能解释一下为什么增加内存可以让 Lambda 启动得更快吗?我注意到仅使用一小部分可用内存(例如 30-40%)的 Lambda 仍然会遭受冷启动缓慢(冷时约为 6 秒,热时为 2 毫秒)。
    • @CarlosMacasaet 我认为这是因为 CPU 与内存一起被提升了。更多内存意味着更大的底层虚拟计算机。
    • 这在 2017 年仍然是一个问题吗?解决方案是否相同,只需在“内存”上调高拨盘?
    • @Costa 是的,根据 Lambda 常见问题解答。 aws.amazon.com/lambda/faqs "在 AWS Lambda 资源模型中,您可以为函数选择所需的内存量,并按比例分配 CPU 功率和其他资源。"
    【解决方案2】:

    人们普遍认为,当人们提到“热启动”时,他们的意思是同一个容器/沙盒已准备好接收新连接 - 但这是不准确的。

    • 暖启动 - 使用暖容器调用函数,该容器带有预烘焙的未使用沙盒资源,之前调用的资源不会被回收。
    • 冷启动 - 当没有容器/沙箱准备好接收请求时调用函数。必须创建一个新容器并加载运行时和用户代码。冷启动的延迟主要是一个内部指标,在外部,冷启动只是影响最终用户体验的总开销的一部分。在某些场景下,我们会遇到全冷启动的一部分,想想规模预测和统计算法

    但是,使用术语“冷启动”和“热启动”可能会产生误导,作为开发人员,您应该关心“调用开销”——调用用户函数并返回响应所需的时间。

    【讨论】:

      猜你喜欢
      • 2010-09-12
      • 2018-04-14
      • 2020-07-02
      • 2021-11-06
      • 2022-10-04
      • 1970-01-01
      • 2019-11-21
      • 2021-12-05
      • 1970-01-01
      相关资源
      最近更新 更多