【问题标题】:GCP Cloud Functions - Memory ConsumptionGCP 云函数 - 内存消耗
【发布时间】:2019-01-24 07:52:57
【问题描述】:

Cloud Functions 如何计算内存消耗?

是当前正在运行的所有函数的内存总量吗?

假设:

分配的总内存为 512 MB。

3 个运行函数,每个函数 60MB。

这是否意味着我们总共使用了 180MB?还是每个函数都有自己的内存消耗?

我得到一个看起来像这样的内存消耗图表:

对象不是持久的,而且我不写入本地文件,所以我想知道是不是某个地方有问题。

每次我部署一个新函数时,内存消耗都会下降,但随着调用次数的增加,内存消耗会增加,直到我看到内存超出限制错误。

【问题讨论】:

    标签: google-cloud-platform google-cloud-functions


    【解决方案1】:

    每个函数调用都在其自己的服务器实例中运行。该函数调用的持续时间和内存使用情况用于计费。

    单个 Cloud Function 服务器实例不会并行处理调用。只能串行。每个函数调用都单独计费。只有当 Cloud Functions 确定多个实例最适合处理函数上的负载时,才能并行调用函数。

    如果您在全局内存空间中存储任何东西而不释放它,则该内存分配将计入该服务器实例中该函数的未来调用,直到该实例因任何原因而关闭.为了尽量减少内存使用,只在本地分配将在函数完成时被清理的对象。内存泄漏通常很难检测到。

    如果不查看您的函数的代码并了解其使用行为,就不可能完全解释您所看到的图表。

    【讨论】:

    • 谢谢!我认为谷歌代码库中的某个地方(我目前正在使用 BigTable)正在泄漏内存。我会用 mem_top 挖掘一下,看看会发生什么。
    • 是的......似乎 BigTable 是罪魁祸首。一旦我删除 BigTable 写入,一切都是恒定的 80MB 使用量。非常感谢!
    猜你喜欢
    • 2020-01-05
    • 1970-01-01
    • 1970-01-01
    • 2021-03-31
    • 1970-01-01
    • 2010-10-12
    • 1970-01-01
    • 1970-01-01
    • 2011-11-19
    相关资源
    最近更新 更多