EC2 实例上的磁盘空间不断填满,没有明显的文件/目录

sas*_*her 8 hard-drive logging disk-space-utilization amazon-ec2

为什么 os 显示使用了 6.5G,但我在文件/目录中只看到 3.6G?

在 Amazon Linux AMI(看起来像 Centos)上以 root 身份运行,有大量可用内存,没有进行交换,没有明显的文件描述符问题。我唯一能想到的是在应用程序附加到它时被删除的日志文件。

磁盘空间使用率缓慢但不断地向满容量上升(约 1k/min,不时下降很小)

有什么解释吗?解决方案?

du --max-depth=1 -h /
1.2G /usr
4.0K /cgroup
22M /lib64
11M /sbin
19M /etc
52K /dev 2.1G /
var
4.0K /media
0 /sys
4.0K /selinux
du: 无法访问/proc/14024/task/14024/fd/4': No such file or directory du: cannot access<br/> /proc/14024/task/14024/fdinfo/4': 没有那个文件或目录 du:
无法访问/proc/14024/fd/4': No such file or directory du: cannot<br/> access/proc/14024/fdinfo/4': 没有那个文件或目录 0 /proc
18M /home
4.0K /logs
8.1M /bin
16K /lost+found
12M /tmp
4.0K /srv
35M /boot
79M /lib
56K /root
67M /opt
4.0K /本地
4.0K /mnt
3.6G /

df -h

已使用的文件系统大小 Avail Use% Mounted on
/dev/xvda1 7.9G 6.5G 1.4G 84% / tmpfs 3.7G 0 3.7G 0% /dev/shm

sysctl fs.file-nr fs.file-nr = 864 0 761182

Dav*_*ett 4

如果已删除的文件仍被某个进程打开,则该空间将不会被回收,直到该进程关闭该文件(或被杀死)。如果您无法识别保持文件打开的进程,则重新启动将有所帮助,因为这将关闭所有正在运行的进程(从而关闭所有打开的文件)。

另一个考虑因素是文件系统损坏。由于这是您的根文件系统,您可能需要重新启动并在重新启动时强制执行文件系统检查 ( shutdown -rF now)。确保您配置为执行非交互式扫描+修复,除非您具有 KVM 访问权限或类似权限(以便您可以在启动过程中进行交互),否则如果在检查期间发现错误,您的远程计算机将挂起等待本地输入。

编辑:( 根据评论中的问题)

如果您知道使文件保持打开状态的进程,则可以重新启动该特定进程(通过服务停止/启动/重新启动脚本或通过更手动地终止并重新启动)而不是整个实例。

此外,某些程序支持能够在不重新启动的情况下重置自身,这通常包括关闭和重新启动日志文件(如果确实是由于已删除的日志文件仍然打开而导致的问题,则解决您的问题)以响应发送 SIGHUP 信号(通过kill) 。以这种方式重置进程有时更可取,因为它可以减少(通常为零)服务器进程无法接受新连接的时间。/etc/init.d/<service> reload这通常是您运行时发生的情况/etc/init.d/<service> restart(如果事实上我已经看到restart以这种方式实现,因此要进行正确的完全重置,您必须这样做/etc/init.d/<service> stop; /etc/init.d/<service> start)。