我正在执行一个具有以下配置的lambda Nodejs function:
1)最大内存: 512 Mb
2)超时:20秒
单个执行的内存消耗:100 Mb
执行单个函数需要大约100 Mb。
我注意到的:
当Lambda function多次执行时,从100 Mb到128 Mb到155 Mb等,所消耗的内存不断增加。
当它到达最大内存(512 Mb)时,执行停止,我得到以下错误:
在完成请求之前退出的进程
几分钟后试一试,内存就会被清理干净,并再次从100 Mb中获得sarts。
有没有办法清理Lambda函数中使用的内存?如果没有,是否有其他方法来解决这个问题?
编辑:
我使用这个lambda函数使用node-canvas从node-canvas生成图像。
发布于 2017-07-13 16:07:17
我相信你可能有一些静态变量。在Java环境中,AWS在多个lambda执行过程中将静态变量保存在内存中。因此,如果您有一个静态映射,并且在每次执行lambda时都向其添加变量,那么它将留在内存中。对于node.js来说也可能是这样。
https://stackoverflow.com/questions/43323807
复制相似问题