【发布时间】:2017-11-20 02:33:00
【问题描述】:
我正在考虑将一些代码放入 Azure 函数中,并且我对内存限制以及函数的扩展方式存在疑问/担忧。
在高端,应用程序一次执行可以使用大约 800 mb 的内存,所以如果我可以使用的最大内存是 1536mb,我只能有 1 次并发执行而不会耗尽内存。
我的理解是最多可以有 10 个实例,有 x 个并发执行,但是如果最大容量只允许我 1 次运行执行而不超时,这是否意味着我需要手动设置最大值并发执行到 1,它会自动扩展到最多 10 个实例,这意味着我一次只能有 10 个整体执行?
如果是这样,那就太可惜了,因为我预计大多数执行所需的内存都比这少得多。
这是一个文件操作函数,所以我可以根据输入文件的大小合理准确地猜测将使用多少内存,所以如果我重组后端以根据输入大小填充各种队列,我可以有 1 个用于高端内容的队列(每个实例一次只允许 1 次执行),然后将其划分为其他大小的队列并手动调整最大并发实例,并使用特定功能针对它的关联队列。
例如1 个小于 1mb 的文件的队列,尽可能多的执行 = 1 个不受限制的函数。
1 个 1mb-10mb 输入文件的队列,限制为 20 个并发执行。
等等
感觉工作量超出了应有的程度,但也不算太痛苦。
这似乎是一种明智的方法,还是有更简单的方法?
您究竟如何限制并发执行的数量?
【问题讨论】:
标签: azure azure-functions