[英]Memory issues in a Cloud Storage Function
我已经部署了一个存储触发器云 function,它需要更多 memory。在部署 GCF 时,我已经通过以下方式使用适当的标志进行了部署。
gcloud functions deploy GCF_name--runtime python37 --trigger-resource bucket_name --trigger-event google.storage.object.finalize --timeout 540s --memory 8192MB
但我在谷歌云控制台中观察到,memory 利用率 map 不会超过 2GB。 在日志中,我收到此错误, Function execution took 34566 ms, finished with status: 'connection error'
,这是由于 memory 短缺而发生的。 我能得到一些帮助吗?
已编辑
该应用程序将文本文件上传到包含一定数量样本的存储中。 每个文件在上传到存储时都会被读取,并且数据会附加到预先存在的文件中。 样本总数最多为 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()
每次上传后 memory 利用率 map 都是一样的。
您正在将文件写入内存文件系统/tmp
。 因此,请在完成上传后删除该文件。 事实上那些:
您编写的文件消耗 memory 可用于您的 function,并且有时在两次调用之间持续存在。 未能显式删除这些文件可能最终导致内存不足错误和随后的冷启动。
参考: https://cloud.google.com/functions/docs/bestpractices/tips#always_delete_temporary_files
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.