我发现了服务器的奇怪行为,首先我查看了日志文件/var/log/mongodb/mongodb.log
。在那里我看到了以下几行:
Wed Jan 7 16:33:31 [FileAllocator] allocating new datafile /var/lib/mongodb/salesg_call_log.1, filling with zeroes...
Wed Jan 7 16:33:31 [FileAllocator] FileAllocator: posix_fallocate failed: errno:28 No space left on device falling back
Wed Jan 7 16:33:31 [FileAllocator] error failed to allocate new file: /var/lib/mongodb/salesg_call_log.1 size: 33554432 errno:28 No space left on device
Wed Jan 7 16:33:31 [FileAllocator] will try again in 10 seconds
我猜这意味着我的服务器上没有可用磁盘空间。
然后我输入命令df -h
:
Filesystem Size Used Avail Use% Mounted on
rootfs 9.3G 2.5G 6.5G 28% /
udev 10M 0 10M 0% /dev
tmpfs 55M 92K 55M 1% /run
/dev/mapper/jatare--web--front_system-root 9.3G 2.5G 6.5G 28% /
tmpfs 5.0M 0 5.0M 0% /run/lock
tmpfs 109M 0 109M 0% /run/shm
/dev/xvda1 134M 18M 109M 15% /boot
我的 MongoDB 文件存储在/var/lib/mongodb/
,并且有足够的空间来存储数据。
然后我刚刚重启了 mongodb 服务和 apache2 服务,现在一切正常。但我担心不久的将来会出现同样的情况。
所以我的问题是问题是什么以及如何解决它?
对于@NickW:
root@jatare-web-front:~# df -i
Filesystem Inodes IUsed IFree IUse% Mounted on
rootfs 593408 46255 547153 8% /
udev 57496 273 57223 1% /dev
tmpfs 69353 189 69164 1% /run
/dev/mapper/jatare--web--front_system-root 593408 46255 547153 8% /
tmpfs 69353 3 69350 1% /run/lock
tmpfs 69353 2 69351 1% /run/shm
/dev/xvda1 72720 27 72693 1% /boot
答案1
我发现的唯一解决方案是关于 x32 机器上 MongoDB 的 2GB 限制。MongoDB 在 x32 操作系统上无法存储超过 2GB 的数据:http://blog.mongodb.org/post/137788967/32 位限制
但我不确定这是否是问题所在。