【发布时间】:2016-05-27 22:44:34
【问题描述】:
我在 AWS EC2 c3.large 实例上运行 Ubuntu 14.04 值得信赖。
尽管df 显示我的磁盘使用量远未满,但我的构建开始失败并出现“设备上没有剩余空间”错误。
然后我通过运行df -ih 并看到我在/dev/xvda1 上的 inode 使用率接近 100%,发现这是我的 inode 的问题。
我使用以下脚本跟踪 inode 使用情况到 codedeploy 代理,通过将 /* 更改为更具体的目录来查找具有高 inode 使用率的目录 for i in /*; do echo $i; find $i |wc -l; done 以跟踪具体问题。
现在我已经到了/opt/codedeploy-agent/deployment-root/aafbfc42-d92d-4260-be40-6c331a3c3a13 的位置,并且 codedeploy 保留的最后 5 个部署中的每一个都使用 ~70k inode,其中大部分是由于我的应用程序中的 node_modules 目录,其中约 40k 被 babel-preset-es2015 使用。
我不确定从这里开始的最佳方式是什么。 babel-preset-es2015 的 inode 数量是否正常?有没有一种方法可以安全地删除整个部署或以某种方式不在这些部署中包含node_modules?我还缺少其他解决方案吗?
谢谢
编辑:对此进行深入研究。我的一台生产服务器(与另一台相同)有 630 万个 inode,而问题服务器只有 512K 个 inode...
EDIT2: 看起来一个实例只附加了一个 8GB 的卷,而另一个实例有一个 100GB 的卷。仍然不完全确定为什么 es2015 预设会占用这么多空间,但至少我现在知道从哪里着手解决这个问题。
【问题讨论】:
标签: amazon-web-services ubuntu-14.04 inode aws-code-deploy