2013-06-18 3 views
0

Я использую MongoDB 2.4, и когда я запускаю mongo в первый раз, я получаю 9GB журнальных файлов на одном сервере, а на втором сервере я получаю только 0,5 ГБ файлы для ведения журнала. На первом сервере MongoDB занимает 5 минут, чтобы загрузить! а на втором - несколько секунд. Оба экземпляра не имеют данных и работают в первый раз. Каждый сервер работает независимо, и оба они не связаны друг с другом. На каждом сервере есть свои осколки (все осколки - 3 из них, находятся на одном сервере).Журналирование Mongodb - файлы очень большие

Что означает для каждого сервера у меня есть:

/usr/mongodb/bin/mongod --configsvr --dbpath /data/svr1 --port 27019 

/usr/mongodb/bin/mongod --configsvr --dbpath /data/svr2 --port 27020 

/usr/mongodb/bin/mongod --configsvr --dbpath /data/svr3 --port 27021 

/usr/mongodb/bin/mongod --dbpath /data/db1 --port 27010 

/usr/mongodb/bin/mongod --dbpath /data/db2 --port 27011 

/usr/mongodb/bin/mongod --dbpath /data/db3 --port 27012 

/usr/mongodb/bin/mongos --configdb localhost:27019,localhost:27020,localhost:27021 

и сценарий, который создает черепки:

sh.addShard("localhost:27010"); 

sh.addShard("localhost:27011"); 

sh.addShard("localhost:27012"); 

sh.enableSharding("somescheme"); 

Я задавался вопросом, почему я получаю файлы 9ГБ для журналирования на 1-ый и 0,5 GB на втором? Первый имеет большой жесткий диск, а не SSD, второй - SSD и меньше. любые идеи? Спасибо !!!

+1

Вы работаете с флагом smallfiles (либо в командной строке, либо в вашем .cfg) на вашем втором хосте? Когда включено, это уменьшает размер, выделенный для файлов журнала и данных. Еще одно замечание: MongoDB будет только предварительно распределять файлы журналов, если ваши экземпляры mongod решают, что было бы более эффективно это делать, а затем строить на лету. См. Это для получения дополнительной информации: http://docs.mongodb.org/manual/core/journaling/#journal-files –

+0

нет, не работает с smallfiles conf на обоих из них. Я читал, что не рекомендуется запускать мелкие файлы, когда у вас есть большой объем данных на каждом узле, только если у вас много узлов с небольшим количеством данных для каждого. – user1986447

+0

Правильно, единственный случай, который я видел для небольших файлов в производстве, - это когда вы используете большое количество небольших баз данных. Можете ли вы предоставить ls -l в обоих журнальных каталогах? Было бы интересно посмотреть размер и количество файлов. –

ответ

0

MongoDB предварительно распределит файлы журнала, если он решит, что это лучше сделать. Проверьте свои журналы примерно так:

Thu Mar 10 20:49:33 [initandlisten] preallocating a journal file db/journal/prealloc.0 
Thu Mar 10 20:52:49 [initandlisten] preallocating a journal file db/journal/prealloc.1 
Смежные вопросы