首先,我是 Linux 和 AWS 的业余爱好者,所以我感觉自己在这里是在黑暗中搜索。我的 Elastic Beanstalk 环境似乎出现了问题。几天后,我收到了
环境健康状况已从“严重”转为“警告”。1 个实例中有 1 个受到影响。
当我检查 beanstalk 实例时,它说
95% 的根文件系统正在使用中。剩余 402 MB。
即使我重新启动环境,此问题仍然存在。但是,当我将应用程序重新部署到 Beanstalk 时,它纠正了这个问题,但几天后它又回来了。我怀疑我的应用程序代码中存在内存泄漏,但我还没有诊断出来。
df -h
显示以下内容:
Filesystem Size Used Avail Use% Mounted on
overlay 16G 3.5G 12G 24% /
tmpfs 64M 0 64M 0% /dev
shm 64M 0 64M 0% /dev/shm
/dev/nvme1n1 16G 3.5G 12G 24% /home
/dev/loop0 974M 2.3M 904M 1% /home/cloudshell-user
/dev/nvme0n1p1 30G 13G 17G 44% /aws/mde/mde
我尝试在继续操作之前确认此根文件系统问题,但无法看到占用空间的原因。我尝试了以下附加命令:
sudo find / -type f -size +10M -exec ls -lh {} \
lsof -nP | grep '(deleted)'
没有出现任何明显的问题。有人有什么想法可以帮助新手吗?
提前致谢
答案1
除了了解一些删除文件的技巧之外,要管理文件系统,您还需要知道顶层是什么类型,底层是什么层。
运行mount
命令以查看所有卷上的设备和选项。/ on overlay 表示其上层目录几乎肯定位于另一个文件系统上,并且您交互检查时的可用空间会反映这一点。监控可能有一个略微不同的实现,获取所有块设备而不是已安装的文件系统。
评估 upperdir、workdir 和 lowerdir 的大小,ncdu -x
注意您可以使用-o
选项保存文件大小以供以后分析。
存储使用量会随着时间的推移而增加。日志文件、缓存和暂存的内容、应用程序无法按应有的速度处理的数据。其中大部分可能是具有自动清除过程的临时数据,但请验证这一点。除了将内容设置为只读且不允许任何文件写入之外,还需要有足够的空间来继续操作,直到问题得到解决。
答案2
我想我已经搞清楚了。我是从 beanstalk 环境访问 shell,但我应该查看 EC2 实例。一旦进入那里,我就能使用 du -h 命令确定确实是日志文件导致了问题。感谢所有回复并提供帮助的人