如何提高 lambda 性能?
How to improve lambda performance?
您好,我正在尝试深入了解 lambda 架构。以下是我对lambda的理解。
每当我们创建 lambda 函数时,容器都会启动。如果我们 select python 作为 运行 时间 python 容器将旋转起来。现在有冷启动。例如,如果我们长时间不调用 lambda,容器将变得不活跃。它将调用新容器,并且需要一些时间来启动新容器。这是冷启动。现在我在这里有点困惑。如果我想避免这种延迟,正确的方法是什么?我们可以使用 cloud watch 每 5 分钟触发一次 lambda。还有其他好的方法来处理这个问题吗?
还有 /tmp 文件夹,我们可以在其中存储静态文件。所以 /tmp 不是容器的一部分?每当新容器启动时,/tmp 数据将丢失还是保留?有人可以帮助我理解这些概念并告诉我使用最佳方法来处理这个问题吗?任何帮助,将不胜感激。谢谢你。
- 你是对的,存在冷启动问题,但据观察,这取决于很多因素(运行时、内存、zip 大小....例如,java lambda 会有更多的冷启动start compared to python) 并且基本上这对于用户定义的 VPC 中的 lambda 来说是个大问题。其中存在创建弹性网络接口然后调用 lambda 的开销。但最近的推出改变了这一点,现在你不应该看到这个问题。 improved-vpc-networking for lambda.
- 同样在重塑 2019 中,aws 宣布了 Provisioned Concurrency 因此,对于使用预配置并发的 lambda 函数,将以一致的启动延迟执行。
- 使用预置并发,函数可以即时服务于
流量突发,每次调用都有一致的启动延迟
到指定的比例。客户只需为他们配置的并发量和配置的时间段付费。
- 关于
/tmp
请注意,每个 Lambda 函数在其自己的 /tmp 目录中接收 512MB 的非永久性磁盘 space。所以你不能依赖它。 Lambda limits 如果您正在寻找持久存储,您应该使用 S3。
您好,我正在尝试深入了解 lambda 架构。以下是我对lambda的理解。
每当我们创建 lambda 函数时,容器都会启动。如果我们 select python 作为 运行 时间 python 容器将旋转起来。现在有冷启动。例如,如果我们长时间不调用 lambda,容器将变得不活跃。它将调用新容器,并且需要一些时间来启动新容器。这是冷启动。现在我在这里有点困惑。如果我想避免这种延迟,正确的方法是什么?我们可以使用 cloud watch 每 5 分钟触发一次 lambda。还有其他好的方法来处理这个问题吗? 还有 /tmp 文件夹,我们可以在其中存储静态文件。所以 /tmp 不是容器的一部分?每当新容器启动时,/tmp 数据将丢失还是保留?有人可以帮助我理解这些概念并告诉我使用最佳方法来处理这个问题吗?任何帮助,将不胜感激。谢谢你。
- 你是对的,存在冷启动问题,但据观察,这取决于很多因素(运行时、内存、zip 大小....例如,java lambda 会有更多的冷启动start compared to python) 并且基本上这对于用户定义的 VPC 中的 lambda 来说是个大问题。其中存在创建弹性网络接口然后调用 lambda 的开销。但最近的推出改变了这一点,现在你不应该看到这个问题。 improved-vpc-networking for lambda.
- 同样在重塑 2019 中,aws 宣布了 Provisioned Concurrency 因此,对于使用预配置并发的 lambda 函数,将以一致的启动延迟执行。
- 使用预置并发,函数可以即时服务于 流量突发,每次调用都有一致的启动延迟 到指定的比例。客户只需为他们配置的并发量和配置的时间段付费。
- 关于
/tmp
请注意,每个 Lambda 函数在其自己的 /tmp 目录中接收 512MB 的非永久性磁盘 space。所以你不能依赖它。 Lambda limits 如果您正在寻找持久存储,您应该使用 S3。