Bra*_*ost 1 google-cloud-functions
我最近重新部署了一些 python GCP 云函数,注意到它们多占用了大约 50mbs 的内存,从而触发了内存限制错误(我必须将内存分配从 256mb 增加到 512mb 才能让它们运行)。不幸的是,这是成本的两倍。
我试图找出导致内存增加的原因。我唯一能想到的是最近升级了一个python包。因此,我根据我的本地虚拟环境在requirements.txt中指定了所有软件包版本,该环境最近没有改变。内存使用量的增加仍然存在。
是否还有其他因素会导致内存利用率增加?Python运行时仍然是3.7,函数处理的数据没有改变。一般来说,这似乎也不是 GCP 对云功能所做的改变,因为它只发生在我重新部署的功能上。
小智 6
我可以指出内存限制错误的几种可能性,它们是:
\n\n\n您编写的文件会消耗函数可用的内存,并且\n有时会在调用之间持续存在。未能显式删除\n这些文件最终可能会导致内存不足错误和\n随后的冷启动。
\n
正如StackOverflow 答案中提到的,如果您在全局内存空间中分配任何内容而不释放它,则内存分配会将其计入未来的调用中。为了最大限度地减少内存使用量,仅在本地分配对象,这些对象将在函数完成时被清理。内存泄漏通常很难检测到。
\n此外,云功能需要在完成后做出响应。如果他们不响应,那么他们分配的资源将不会被释放。云函数的任何异常都可能导致内存限制错误。
\n您可能还想检查自动缩放和并发,其中提到了另一种可能性。
\n\n\n函数的每个实例一次仅处理一个并发请求。\n 这意味着当您的代码正在处理一个请求时,\n不可能将第二个请求路由到同一个\实例。因此,原始请求可以使用您请求的全部资源(CPU 和内存)。
\n
归档时间: |
|
查看次数: |
2566 次 |
最近记录: |