【问题标题】:Why are concurrent lambda requests being kicked off late?为什么并发 lambda 请求延迟启动?
【发布时间】:2018-09-24 20:06:14
【问题描述】:

我正在使用 Charlesproxy 在 AWS Lambda 上运行负载测试,但对生成的时间表图表感到困惑。我已经设置了一个包含 100 个并发连接的测试,并预计会有不同程度的延迟,但预计会同时启动所有 100 个请求(因此 charlesproxy 重复高级功能中的并发设置),但我看到一些请求开始了有点晚了……如果我正确理解图表的话。

只有 100 次调用,我应该在 AWS Lambda 设置的最大并发数范围内,那么为什么这些请求会延迟启动(请参阅附加图像上的请求 55 - 62)?

【问题讨论】:

    标签: node.js aws-lambda charles-proxy


    【解决方案1】:

    当 Lambda 处于“冷态”时,它可能需要几百毫秒到 1-2 秒才能启动。冷意味着它需要下载你的包,解包,加载到内存中,然后开始执行你的代码。执行后,此容器会保持“活动”状态约 5 到 30 分钟(“温暖状态”)。如果您在温暖的时候再次请求,容器启动会更快。

    当您开始测试时,您可能已经有几个容器已经暖和了。那些启动得更快。由于其他请求同时出现,Lambda 需要启动更多容器,而这些容器来自“冷状态”,因此您在图表中看到了时间差。

    【讨论】:

    • 我预计这次会显示为延迟 - 发出请求并等待响应开始下载。我不明白为什么冷启动会导致请求稍后启动。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多