Aws lambda 内存密集型按需计算

Aws lambda 内存密集型按需计算,aws-lambda,azure-functions,Aws Lambda,Azure Functions,我们正在考虑使用azure函数来运行一些计算。然而,我们的计算机可能会占用大量内存,比如说超过5GB 据我所知,没有简单的方法可以根据内存使用情况来扩展azure功能。即如果达到15GB,启动一个新实例(因为您不希望它超过实例的最大内存) 有没有办法绕过这个限制? 或 除了azure功能之外,还有其他技术替代方案可以提供按次付费并允许按需快速扩展吗?如果没有关于您实际尝试计算的任何详细信息,很难给您任何有意义的建议 但是有一些事情你可以考虑。 例如,如果您正在处理CSV文件,并且您知道需要1GB

我们正在考虑使用azure函数来运行一些计算。然而,我们的计算机可能会占用大量内存,比如说超过5GB

据我所知,没有简单的方法可以根据内存使用情况来扩展azure功能。即如果达到15GB,启动一个新实例(因为您不希望它超过实例的最大内存)

有没有办法绕过这个限制?


除了azure功能之外,还有其他技术替代方案可以提供按次付费并允许按需快速扩展吗?

如果没有关于您实际尝试计算的任何详细信息,很难给您任何有意义的建议

但是有一些事情你可以考虑。

例如,如果您正在处理CSV文件,并且您知道需要1GB的内存来处理一个文件,那么“旋转”每个文件一个AWS Lambda。您可以使用无服务器编排来协调处理。这样,您就可以有效地分解计算密集型任务

另一个选择是自动“按使用付费”。您可以使用自动化工具,比如启动一个spot实例,运行您的计算任务,然后在它完成后关闭EC2实例。这是或多或少的现收现付,同时你也会有一些运营开销

还有其他服务,如,它被称为“容器的无服务器计算”,允许您以按使用付费的方式运行Docker容器。Fargate允许提供高达30GB的内存

另一种选择是使用诸如或之类的服务来“外部化”您的内存

很难说这些选项中哪一个最适合您,因为这取决于您的限制:您需要将所有内容都存储在“同一内存”中,还是可以将其拆分等,您的数据结构是什么,可以分块处理(以最大限度地减少内存使用),延迟是否重要,需要多长时间,您需要多久运行一次任务等

注意:可能有与我在回答中提到的AWS服务等效的Azure服务