Amazon EC2实例:无法为此文档创建临时文件。设备

时间:2016-12-25 14:28:16

标签: mongodb memory-management amazon-ec2 out-of-memory

我有一个EC2实例,它继续运行Out Of Memory,依次杀死我的mongod进程。

执行df -h给出

udev            2.0G     0  2.0G   0% /dev
tmpfs           396M   41M  355M  11% /run
/dev/xvda1      7.8G  7.4G     0 100% /
tmpfs           2.0G     0  2.0G   0% /dev/shm
tmpfs           5.0M     0  5.0M   0% /run/lock
tmpfs           2.0G     0  2.0G   0% /sys/fs/cgroup
tmpfs           396M     0  396M   0% /run/user/1000

因为我的/dev/xvda1已满。我进入'/'或根目录并执行

ls -l --block-size=M 
total 1M
drwxr-xr-x   2 root root 1M Nov 22 04:49 bin
drwxr-xr-x   3 root root 1M Dec 21 13:14 boot
drwxrw-rwx   3 root root 1M Oct 18 21:01 data
drwxr-xr-x  16 root root 1M Oct 18 20:30 dev
drwxr-xr-x  91 root root 1M Dec 14 01:29 etc
drwxr-xr-x   3 root root 1M Oct 18 20:30 home
lrwxrwxrwx   1 root root 1M Dec 21 13:14 initrd.img -> boot/initrd.img-4.4.0-57-generic
lrwxrwxrwx   1 root root 1M Dec  6 05:03 initrd.img.old -> boot/initrd.img-4.4.0-53-generic
drwxr-xr-x  21 root root 1M Sep  7 19:24 lib
drwxr-xr-x   2 root root 1M Sep  7 19:22 lib64
drwx------   2 root root 1M Sep  7 19:26 lost+found
drwxr-xr-x   2 root root 1M Sep  7 19:22 media
drwxr-xr-x   2 root root 1M Sep  7 19:22 mnt
drwxr-xr-x   2 root root 1M Sep  7 19:22 opt
dr-xr-xr-x 139 root root 0M Oct 18 20:29 proc
drwx------   4 root root 1M Oct 18 21:00 root
drwxr-xr-x  23 root root 1M Dec 25 13:55 run
drwxr-xr-x   2 root root 1M Oct 19 06:11 sbin
drwxr-xr-x   2 root root 1M Sep  1 17:37 snap
drwxr-xr-x   2 root root 1M Sep  7 19:22 srv
dr-xr-xr-x  13 root root 0M Dec 25 13:59 sys
drwxrwxrwt  11 root root 1M Dec 25 14:17 tmp
drwxr-xr-x  10 root root 1M Sep  7 19:22 usr
drwxr-xr-x  14 root root 1M Oct 18 20:52 var
lrwxrwxrwx   1 root root 1M Dec 21 13:14 vmlinuz -> boot/vmlinuz-4.4.0-57-generic
lrwxrwxrwx   1 root root 1M Dec  6 05:03 vmlinuz.old -> boot/vmlinuz-4.4.0-53-generic

如果我将所有文件大小相加,则它不会加起来为7.4 GB。那是什么?我该如何解决这个问题?这样它就不会溢出并杀死我的mongod进程。

关于一些答案。它说重启你的系统。重新启动后就是输出。

udev            2.0G     0  2.0G   0% /dev
tmpfs           396M  5.6M  390M   2% /run
/dev/xvda1      7.8G  5.3G  2.2G  72% /
tmpfs           2.0G     0  2.0G   0% /dev/shm
tmpfs           5.0M     0  5.0M   0% /run/lock
tmpfs           2.0G     0  2.0G   0% /sys/fs/cgroup
tmpfs           396M     0  396M   0% /run/user/1000

我仍然使用5.3G的空间。是什么导致2 GB被填补?我该如何深入研究这个问题?

2 个答案:

答案 0 :(得分:0)

好的,现在我已经弄明白了。我先做df -h。他们告诉我所有文件夹有多少空间。我们只考虑/dev/xvda1。现在转到主目录并键入du -h -d 1,这意味着磁盘使用情况,并按目录级别1以人类可读格式搜索。它告诉您每个目录使用了多少空间。

然后我转到那个目录并删除占用空间的东西。在我的例子中,它是日志并编写脚本来自动gzip并在我的本地机器上安全复制它们并删除日志。因此解决了这个问题。

答案 1 :(得分:-1)

ls -l没有显示文件夹中文件的大小。你应该运行du -hs。例如:du -hs /* | sort -h