首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >AWS Lambda零星的“设备上没有空间”错误

AWS Lambda零星的“设备上没有空间”错误
EN

Stack Overflow用户
提问于 2015-08-04 19:11:24
回答 2查看 6.1K关注 0票数 6

Amazon函数调用偶尔失败,当将200m文件下载到时,设备上没有任何空间。lambda限制页面明确指出,短暂磁盘容量(“/tmp”空间)的限制为512米,大概是每个lambda调用,而不是在其所有调用中的每个lambda函数。

详情如下:

一个lambda函数(java 8运行时,角色"lambda_basic_execution")被并发调用(40个并发调用)。每次调用都从s3下载数据(在所有情况下,数据都小于512米的限制)。随机地,这些调用中有4到5次失败,在设备错误上没有留出空间。我相信这些调用中的一些最终会在同一台机器和相同的JVM中结束,共享它们对512米临时磁盘的限制。听起来像个窃听器。

下面是堆栈跟踪:

代码语言:javascript
复制
.....Caused by: java.io.IOException: No space left on device at java.io.FileOutputStream.writeBytes(Native Method) at java.io.FileOutputStream.write(FileOutputStream.java:326) at java.io.BufferedOutputStream.write(BufferedOutputStream.java:122) at com.amazonaws.services.s3.internal.ServiceUtils.downloadToFile(ServiceUtils.java:295) ... 5 more

任何建议或解决办法都将不胜感激。

交叉贴在这里:https://forums.aws.amazon.com/thread.jspa?threadID=209428

EN

回答 2

Stack Overflow用户

发布于 2015-08-05 04:35:52

AWS Lambda FAQ说:

每个Lambda函数在自己的/tmp目录中接收500 in的非持久性磁盘空间。

您的环境可能正在重用,因此您的临时文件可能正在累积,并最终超过了限制:

为了提高性能,AWS Lambda可以选择保留函数的一个实例并重用它来服务后续请求,而不是创建一个新的副本。您的代码不应该假设这种情况总是会发生。

因此,尝试删除不再需要的临时文件。还可以插入一些调试代码,以列出/tmp目录中可能存在的原因。

票数 9
EN

Stack Overflow用户

发布于 2016-07-21 14:32:13

每次调用时尝试使用S3并使用唯一的文件夹名,并在完成时使用生命周期来清理它们。(我认为在某个时候安装EFS也是一种选择)。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31817365

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档