【问题标题】:AWS gateway+lambda cold start different for different applicationsAWS网关+lambda冷启动针对不同应用不同
【发布时间】:2019-10-27 04:22:41
【问题描述】:

来自不同应用程序的 aws gateway + lambda 的冷启动。

我试图通过从不同的 lambda 访问 api 网关来保持 lambda 容器温暖(并行 10 个线程)。这有助于从 lambda 进行后续调用。

现在,当我从 Android 应用程序调用时(使用上述 lambda 进行加热后)。第一次调用冷启动仍然需要 5 秒。后续调用又快了。

我的期望是,如果我(对多个容器并行)撞击容器并将其加热到足够的程度,那么所有应用都不应该经历冷启动。

这个期望有效吗?或者 lambda 对于不同的应用有不同的容器?

【问题讨论】:

  • 每个 lambda 都有自己的一组容器。
  • 更准确地说:假设以下顺序调用 1) Postman->lambda1 2) Lambda2->lamda1 3) androidApp->lambda1 在这些情况下,lambda1 的容器是不同的还是相同的.我观察到每一种情况都会发生冷启动。
  • lambda1 将共享它的容器集。您的 lambda 是否在 VPC 内运行?
  • 不,它不在 VPC 内运行。

标签: android python-3.x amazon-web-services aws-lambda aws-api-gateway


【解决方案1】:

问题不在于 aws lambda 冷启动,而在于 Android 中的 Retrofit 第一次调用耗时过长。这是因为 dns 解析耗时太长。

下面是堆栈跟踪为什么要尝试点击“https://google.com”:

REQUEST 1 (new connection)

0.000 callStart

0.007 dnsStart

5.048 dnsEnd

5.049 connectStart

5.056 secureConnectStart

5.106 secureConnectEnd

5.108 connectEnd

5.109 connectionAcquired

5.110 requestHeadersStart

5.112 requestHeadersEnd

5.196 responseHeadersEnd

5.197 responseBodyStart

REQUEST 1 (new connection) end success

【讨论】:

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