Я видел странное поведение своего сервера и прежде всего посмотрел файл журнала /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
Единственное решение, которое я нашел, - это ограничение на 2 ГБ в MongoDB на x32-машинах. MongoDB не может хранить более 2 ГБ в операционных системах x32: http://blog.mongodb.org/post/137788967/32-bit-limitations
Но я не уверен, что это была проблема.