我正在执行具有以下配置的lambda Nodejs function
:
1)最大内存:512 Mb
2)超时:20秒
单次执行的内存消耗: 100 Mb
执行单个功能需要 100 Mb 。
我注意到了什么:
多次执行Lambda function
时,消耗的内存不断增加,从 100 Mb 增加到 128 Mb 增加到 155 Mb 等等...
当它达到最大内存( 512 Mb )时,执行停止,我收到以下错误:
在完成请求之前退出流程
几分钟后试用时,内存会被清理干净并再次从 100 Mb
开始有没有办法清理Lambda函数中的已用内存?如果没有,还有其他方法可以解决这个问题吗?
修改
我正在使用此lambda函数使用canvas
node-canvas
生成图像
答案 0 :(得分:0)
我相信你可能会有一些静态变量。在Java环境中,AWS-Lambda将静态变量保存在多个lambda执行的内存中。因此,如果您有一个静态映射,并且每次执行lambda都会向其添加变量,那么它将保留在内存中。这也可能是node.js的情况。