2013-03-12 3 views
0

Mongo가 2GB의 메모리를 사용할 수있을 때 Mongo가 메모리를 300 ~ 400MB 이상 사용하지 못한다고 말할 수 있습니까? 현재 5 백만 개의 문서 아래에있는 4GB의 dataSize가 있습니까?MongoDB의 메모리 사용량이 적습니다.

많은 문서를 처리하는 쿼리의 경우에도 메모리 소비가 급증하지 않습니다. 같은 서버에서 실행되는 다른 프로세스는 거의 없지만 New Relic을 보면서 메모리 사용량은 500MB를 넘지 않습니다.

이 경우 중요하지만 서버가 KVM으로 가상화되는지는 알 수 없습니다. 우리는 64 비트 버전을 사용하므로 32 비트 제한이 없습니다.

편집 고양이/proc 디렉토리/meminfo 파일

MemTotal:  2051488 kB 
MemFree:   205420 kB 
Buffers:   8472 kB 
Cached:   1346496 kB 
SwapCached:  43224 kB 
Active:   1208548 kB 
Inactive:   551952 kB 
Active(anon):  162448 kB 
Inactive(anon): 243196 kB 
Active(file): 1046100 kB 
Inactive(file): 308756 kB 
Unevictable:   0 kB 
Mlocked:    0 kB 
SwapTotal:  4194300 kB 
SwapFree:  4041128 kB 
Dirty:    812 kB 
Writeback:    0 kB 
AnonPages:  397844 kB 
Mapped:   222180 kB 
Shmem:    72 kB 
Slab:    40728 kB 
SReclaimable:  28304 kB 
SUnreclaim:  12424 kB 
KernelStack:  1800 kB 
PageTables:  13832 kB 
NFS_Unstable:   0 kB 
Bounce:    0 kB 
WritebackTmp:   0 kB 
CommitLimit:  5220044 kB 
Committed_AS: 1404372 kB 
VmallocTotal: 34359738367 kB 
VmallocUsed:  9888 kB 
VmallocChunk: 34359728471 kB 
HardwareCorrupted:  0 kB 
AnonHugePages:   0 kB 
HugePages_Total:  0 
HugePages_Free:  0 
HugePages_Rsvd:  0 
HugePages_Surp:  0 
Hugepagesize:  2048 kB 
DirectMap4k:  53228 kB 
DirectMap2M:  2043904 kB 
+0

미리 읽기 설정 일 수 있습니다. http://www.kchodorow.com/blog/2012/05/10/thursday-5-diagnosing-high-readahead/ – Sammaye

+0

미리 읽기를 조정했지만별로 차이점을 찾지 못했습니다. 나는 32에서 256으로 다른 설정을 시도했다. – jimmy

답변

1

free -m을 실행하는 경우 또는 cat /proc/meminfo, 당신은 메모리 사용의 내역을 볼 수 있어야합니다.

버퍼는 디스크 블록을 캐시하는 데 사용되는 RAM의 양과 관련이 있습니다. 캐싱은 버퍼링과 비슷합니다. 단, 캐싱 된 페이지는 파일을 읽지 않습니다.

이 값이 높으면 미리 읽기 설정이 너무 커서 MongoDB가 나머지 메모리를 사용할 수 없으므로 성능이 저하 될 수 있습니다.

+0

버퍼 2와 캐시 된 1199. 캐시 된 높은 있는지 여부를 모르십니까? – jimmy

+0

cat/proc/meminfo 그래서 메모리 사용량에 대한 전체 그림을 얻을 수 있습니까? – Nick

+0

질문에 추가되었습니다. – jimmy

관련 문제