我如何确定是什么填满了我的 AWS EC2 文件系统?

我如何确定是什么填满了我的 AWS EC2 文件系统?

Elastic Beanstalk 告诉我我的根文件系统已满 96%。当我通过 SSH 进入 EC2 实例并运行 时df,我可以看到我的根文件系统已使用 7.95GB/8GB:

Filesystem     1K-blocks    Used Available Use% Mounted on
devtmpfs         1980524       0   1980524   0% /dev
tmpfs            1988500       0   1988500   0% /dev/shm
tmpfs            1988500   33180   1955320   2% /run
tmpfs            1988500       0   1988500   0% /sys/fs/cgroup
/dev/nvme0n1p1   8376300 7959264    417036  96% /
tmpfs             397700       0    397700   0% /run/user/1000

但是,如果运行命令du,例如sudo du -h -x -d 1 /,我只能看到总共使用了 2.4GB:

35M     /etc
0       /local
26M     /tmp
465M    /var
1.3G    /usr
32M     /boot
608K    /home
0       /media
0       /mnt
560M    /opt
17M     /root
0       /srv
2.4G    /

对于正在运行的程序而言,这些目录看起来都不算太大。我以为问题出在日志文件不断增长,但 /var/log 只占用了 36MB。

我不明白我的根文件系统中的另外 5.5GB 用在了哪里,因为它没有显示出来du

答案1

事实证明,大量文件已被删除,但仍由正在运行的进程打开。

运行sudo lsof -nP | grep '(deleted)'列出了数百个大型日志文件,这些文件已被其他人删除,但仍被我的 Node 应用程序打开。重新启动应用程序可清除它们并释放空间。

相关内容