Почему мой MongoDB взрывается в размере? - PullRequest
0 голосов
/ 30 декабря 2011

Я работаю с MongoDB для простого приложения и испытываю нежелательное поведение. По сути, моя коллекция состоит из множества (string, int) кортежей, каждый из которых в среднем должен занимать менее 64 байт в качестве документа (включая _id). У меня есть один индекс в моей коллекции - в соответствии со строкой.

После добавления ~ 8 миллионов документов я не могу добавить какие-либо новые, поскольку достиг предела в 2,5 гигабайта (у меня 32-битная ОС). Кажется, что я делаю что-то не так, потому что я не вижу причины, по которой это должно достигать такого размера.

Есть идеи или предложения по устранению неполадок? Очевидно, я скоро переключусь на 64-битную ОС, но сначала я хочу понять это поведение.

Обновление (2):

как только БД "заполняется", это вывод команды сбора статистики:

> db.hits.stats()
{
    "ns" : "testdb.hits",
    "count" : 8716619,
    "size" : 611603992,
    "avgObjSize" : 70.16527761509366,
    "storageSize" : 828148736,
    "numExtents" : 21,
    "nindexes" : 2,
    "lastExtentSize" : 145841408,
    "paddingFactor" : 1,
    "flags" : 1,
    "totalIndexSize" : 1007568128,
    "indexSizes" : {
        "_id_" : 360636416,
        "article_-1" : 646931712
    },
    "ok" : 1
}

и это вывод команды db stats:

> db.stats()
{
    "collections" : 3,
    "objects" : 8716625,
    "avgObjSize" : 70.16526281674386,
    "dataSize" : 611604284,
    "storageSize" : 828153856,
    "numExtents" : 23,
    "indexes" : 2,
    "indexSize" : 1007568128,
    "fileSize" : 3154116608,
    "ok" : 1
}

обновление (3): сами файлы БД:

-rw------- 1 mongodb nogroup  64M 2011-11-14 14:06 testdb.0
-rw------- 1 mongodb nogroup 128M 2011-11-14 14:06 testdb.1
-rw------- 1 mongodb nogroup 256M 2011-11-14 14:06 testdb.2
-rw------- 1 mongodb nogroup 512M 2011-11-14 14:06 testdb.3
-rw------- 1 mongodb nogroup 512M 2011-11-14 14:06 testdb.4
-rw------- 1 mongodb nogroup 512M 2011-11-14 14:06 testdb.5
-rw------- 1 mongodb nogroup 512M 2011-11-14 11:20 testdb.6
-rw------- 1 mongodb nogroup 512M 2011-11-10 10:51 testdb.7
-rw------- 1 mongodb nogroup  16M 2011-11-14 14:05 testdb.ns

1 Ответ

1 голос
/ 31 декабря 2011

Можете ли вы опубликовать размеры файлов вашей базы данных? Размер самих данных составляет 120 МБ, плюс 180 МБ для 2 индексов, так что вы по праву ожидаете, что он будет соответствовать вашему пределу в 2 ГБ, но я думаю, что mongodb, вероятно, делает агрессивное предварительное выделение зарезервированного пространства, чтобы избежать фрагментации файловой системы , которая может быть сконфигурировано .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...