2012-08-06 3 views
-1

MongoDb mmap 시작시 모든 데이터 파일 (모든 데이터 파일 + 모든 인덱스)를 메모리에 저장합니까?무엇이 MongoDb를 메모리에 매핑합니까?

데이터베이스가 100GB이고 머신에 4GB RAM 만있는 경우 MongoDb는 데이터베이스 전체를 메모리로 mmap, 맞습니까?

+0

. 물리적 메모리가 아닙니다. –

답변

0

MongoDB는 모든 데이터에 대해 메모리 맵 파일을 사용합니다. 이것이 어떻게 작동하는지에 대해 다음 문서를 참조하십시오 : 그것은 가상 메모리에 파일을 매핑

http://docs.mongodb.org/manual/faq/storage/#what-are-memory-mapped-files

http://www.mongodb.org/display/DOCS/Checking+Server+Memory+Usage

http://www.mongodb.org/display/DOCS/Starting+and+Stopping+Mongo#StartingandStoppingMongo-MemoryUsage

http://www.mongodb.org/display/DOCS/Caching

+0

데이터베이스가 100GB이고 머신의 RAM이 4GB 뿐이라면 MongoDb는 여전히 전체 데이터베이스를 메모리로 mmap합니까? – Cartesius00

+0

활성 작업 집합에 충분한 RAM이 있어야합니다. 이는 일반적으로 전체 데이터베이스 크기보다 작습니다. mongo 콘솔에서'db.stats()'를 실행하여 인덱스와 dataSize의 크기를 알 수 있습니다. 데이터 세트가 사용 가능한 메모리보다 크다면 MongoDB는 일반적으로 액세스하는 데이터의 우선 순위를 RAM으로 정하는 것에 대해 여전히 현명합니다. –

+1

작업 세트가 메모리보다 훨씬 크고 MongoDB가 읽기 (그리고 디스크에 쓰기를 동기화 할 때 정상적인 스파이크가 아닌)를 위해 디스크로 계속 이동한다면, 실제로는 다중 머신/인스턴스로 데이터를 분산시키기 위해 샤딩을해야합니다. –