【发布时间】:2021-08-17 08:30:37
【问题描述】:
我部署了一个需要更多内存的存储触发云功能。在部署 GCF 时,我以以下方式使用适当的标志进行了部署。
gcloud functions deploy GCF_name--runtime python37 --trigger-resource bucket_name --trigger-event google.storage.object.finalize --timeout 540s --memory 8192MB
但是我在google云控制台观察到,内存利用率图并没有超过2GB。在日志中我收到此错误,Function execution took 34566 ms, finished with status: 'connection error',这是由于内存不足而发生的。我能得到一些帮助吗?
已编辑
应用程序将文本文件上传到包含一定数量样本的存储。每个文件在上传到存储时都会被读取,并将数据附加到预先存在的文件中。样本总数最大为 75600002。这就是我需要 8GB 数据的原因。它在将数据附加到文件时给出了连接错误。
def write_to_file(filename,data,write_meta = False,metadata = []):
file1 = open('/tmp/'+ filename,"a+")
if write_meta:
file1.write(":".join(metadata))
file1.write('\n')
file1.write(",".join(data.astype(str)))
file1.close()
每次上传后的内存利用率图都是一样的。
【问题讨论】:
-
首先,这种行为是随机的还是每次你得到
connection error时。然后,如果您可以分享您的实现的更多细节,例如为什么需要 8GB 的云功能,它可能会有所帮助。 -
@MBHAPhoenix,我已经编辑了问题。希望它更清楚
-
1) 您如何确定这是内存导致的连接错误? 2)您不包括与连接相关的详细信息/代码。只是写入 /tmp 的代码。编辑您的问题并提供一个可重现的示例来演示您的问题:stackoverflow.com/help/minimal-reproducible-example
标签: google-cloud-functions google-cloud-storage