2013-06-18 7 views
0

MongoDB 2.4를 사용하고 있습니다. 첫 번째로 mongo를 시작하면 한 서버에 9GB 저널링 파일이 생기고 두 번째 서버에는 저비용으로 0.5GB가됩니다. 저널링을위한 파일. 첫 번째 서버에서 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"); 

나는 1 일 0.5에 저널링에 대한 9기가바이트 파일을받을 이유가 궁금 두 번째 GB? 첫 번째 디스크에는 더 큰 하드 디스크가 있고 SSD는 아니며 두 번째 SSD는 더 작습니다. 아이디어가 있습니까? 감사합니다 !!!

+1

두 번째 호스트에서 smallfiles 플래그 (명령 줄 또는 .cfg)를 사용하고 있습니까? 이를 사용하면 저널 파일과 데이터 파일에 할당 된 크기가 줄어 듭니다. 또 다른 것은 주목해야 할 것은 MongoDB는 저널 파일을 미리 할당 할 것입니다. mongod 인스턴스가 그렇게하는 것이 효율적이라면 즉시 파일을 미리 할당합니다. 자세한 내용은 다음을 참조하십시오. http://docs.mongodb.org/manual/core/journaling/#journal-files –

+0

아니요, 둘 다 smallfiles conf로 실행하지 마십시오. 각 노드에 대해 많은 양의 데이터가있는 노드가 많은 경우에만 작은 파일을 사용하여 실행하는 것은 좋지 않습니다. – user1986447

+0

작은 크기의 데이터베이스를 대규모로 실행하는 경우 생산 과정에서 smallfiles로 본 유일한 경우입니다. 두 저널 디렉토리에 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