我正在执行具有以下配置的lambda Nodejs函数: 1)最大内存:512 Mb 2)超时:20秒 单次执行的内存消耗:100 Mb 执行单个功能大约需要100 Mb. 我注意到了什么: Lambda函数多次执行时,消耗的内存
1)最大内存:512 Mb
2)超时:20秒
单次执行的内存消耗:100 Mb
执行单个功能大约需要100 Mb.
我注意到了什么:
Lambda函数多次执行时,消耗的内存不断增加,从100 Mb增加到128 Mb,依此类推……
当它达到最大内存(512 Mb)时,执行停止,我收到以下错误:
Process exited before completing request
几分钟后尝试时,记忆被清理干净并再次从100 Mb开始
有没有办法清理Lambda函数中的已用内存?如果没有,还有其他方法可以解决这个问题吗?
编辑:
我使用此lambda函数使用node-canvas从canvas生成图像
我相信你可能会有一些静态变量.在 Java环境中,AWS-Lambda将静态变量保存在多个lambda执行的内存中.因此,如果您有一个静态映射,并且每次执行lambda都会向其添加变量,那么它将保留在内存中.对于node.js也可能是这种情况.