Node.js 谷歌云功能内存不足错误没有意义 问题:

Node.js 谷歌云功能内存不足错误没有意义 问题:,node.js,google-cloud-functions,out-of-memory,Node.js,Google Cloud Functions,Out Of Memory,您知道一种方法来实际监控GCF(Node.js 8)使用了多少内存吗? 对于Node.js 8的Google云函数(甚至是本地)的内存配置,您有什么建议吗 背景: 我部署了一个谷歌云函数(NodeJS),它有128MB的内存,过去运行得很好 今天,它无法说出“错误:超出内存限制。” GCP告诉我,该函数使用的内存不超过58MiB,但当它有128MB时,它会因内存错误而失败 我感到失落和有缺陷,因为: 它过去很管用,从那以后我什么也没变 在监控内存消耗方面,我似乎不能相信谷歌 函数的“详细信息”屏

您知道一种方法来实际监控GCF(Node.js 8)使用了多少内存吗?
对于Node.js 8的Google云函数(甚至是本地)的内存配置,您有什么建议吗

背景: 我部署了一个谷歌云函数(NodeJS),它有128MB的内存,过去运行得很好

今天,它无法说出“
错误:超出内存限制。

GCP告诉我,该函数使用的内存不超过58MiB,但当它有128MB时,它会因内存错误而失败

我感到失落和有缺陷,因为:

  • 它过去很管用,从那以后我什么也没变
  • 在监控内存消耗方面,我似乎不能相信谷歌

  • 函数的“详细信息”屏幕显示其消耗量不超过58MiB。

  • 我为了监视而创建的仪表板显示了相同的值。
  • 然而,由于内存限制,它失败了。
  • 我已经看到了这个问题,但是Stackdriver Profiler似乎不适用于GCF()

    从Google云控制台在云函数中设置内存分配。 从:

    在谷歌云平台控制台中设置内存分配和超时:

  • 在谷歌云平台控制台中,从左侧菜单中选择云功能
  • 通过单击函数列表中的函数名称来选择函数
  • 单击顶部菜单中的编辑图标
  • 从标记为memory allocated(内存分配)的下拉菜单中选择内存分配
  • 单击“更多”以显示高级选项,并在“超时”文本框中输入秒数
  • 单击“保存”以更新该函数
  • 检查内存泄漏的内容(非常棘手的故障排除):

    • 异步等待函数
    • 承诺“在后台”运行(带有.then)
    • /tmp
      /在函数实例中存储临时文件也会消耗为函数提供的内存
    云函数 函数的每个实例一次只处理一个并发请求。这意味着,当代码处理一个请求时,不可能将第二个请求路由到同一实例。因此,原始请求可以使用您请求的全部资源(CPU和内存)

    云功能监控 以下是监控云功能的可用资源:

    • 捕获并存储云函数日志
    • 捕获特殊格式的错误日志并将其显示在错误报告仪表板中
    • 记录有关云功能执行的度量
    从谷歌云控制台设置云函数中的内存分配。 从:

    在谷歌云平台控制台中设置内存分配和超时:

  • 在谷歌云平台控制台中,从左侧菜单中选择云功能
  • 通过单击函数列表中的函数名称来选择函数
  • 单击顶部菜单中的编辑图标
  • 从标记为memory allocated(内存分配)的下拉菜单中选择内存分配
  • 单击“更多”以显示高级选项,并在“超时”文本框中输入秒数
  • 单击“保存”以更新该函数
  • 检查内存泄漏的内容(非常棘手的故障排除):

    • 异步等待函数
    • 承诺“在后台”运行(带有.then)
    • /tmp
      /在函数实例中存储临时文件也会消耗为函数提供的内存
    云函数 函数的每个实例一次只处理一个并发请求。这意味着,当代码处理一个请求时,不可能将第二个请求路由到同一实例。因此,原始请求可以使用您请求的全部资源(CPU和内存)

    云功能监控 以下是监控云功能的可用资源:

    • 捕获并存储云函数日志
    • 捕获特殊格式的错误日志并将其显示在错误报告仪表板中
    • 记录有关云功能执行的度量

    云功能完成后需要响应!如果他们不响应,那么他们分配的资源就不会是免费的。云函数中的任何异常都可能导致内存限制错误。因此,您需要妥善处理所有紧急情况、例外情况和拒绝承诺,并立即作出响应
    道格·史蒂文森的作品。
    道格的另一篇。

    Jen Person主持的关于云功能记忆的讲座。

    云功能完成后需要响应!如果他们不响应,那么他们分配的资源就不会是免费的。云函数中的任何异常都可能导致内存限制错误。因此,您需要妥善处理所有紧急情况、例外情况和拒绝承诺,并立即作出响应
    道格·史蒂文森的作品。
    道格的另一篇。

    Jen Person主持的关于云功能记忆的演讲。

    谢谢。我理解增加更多内存的意义,但这是一个肮脏的修复。特别是当我的函数没有消耗超过64MiB时,如图所示。但是我不知道Stackdriver监控的情况,我想知道它是否会显示与Google已经显示的数字不同的数字。你是否有可能写信给
    /tmp
    ?看看这个。我不是说这将是完全相同的问题,但可以清楚地向您展示调试代码的方法,并找出是什么导致内存增加。谢谢。我理解增加更多内存的意义,但这是一个肮脏的修复。特别是当我的函数没有消耗超过64MiB时,如图所示。但是,我不知道堆栈驱动程序监控,我想知道它是否会显示