2012-05-10 2 views
-1

MongoDB를 사용하여 엄청난 규모의 전자 상거래 작업에 2 백만 개의 제품을 사용하고 있습니다. 빠른 액세스를 위해 범주 및 일부 제품 데이터를 mongo에 캐시합니다.Idle 상태에서 mongo가 메모리를 처리하는 방법

아직 개발 중입니다. 조사하고 싶은 행동이 있습니다. 밤새 서버가 유휴 상태입니다. 우리가 밤에 떠날 때 모든 것이 빠르며 캐싱은 훌륭하게 작동합니다. 서버가 밤새 유휴 상태가 된 후 아침에 들어올 때 매우 느립니다. 그러나 얼마 후 agin 속도가 빨라집니다.

메모리를 살펴보면이 시간 동안 mongoDB가 더 많이 활성화되어 나타납니다. 저는 Mongo가 유휴 시간 동안 데이터를 디스크로 이동시키고 다음 날 아침에 액세스 할 때 메모리로 백업한다고 가정합니다.

그렇다면이 문제는 페이지가 자주 액세스되는 생산 단계에서 사라질 것입니다.

아무도 (거기에있는 어떤 몽구 전문가가) 내 가설을 생각합니까? 나는 다른 원인 (DB 액세스, CF inits 등)을 확실히 조사하고 있지만 이것이 나에게 가장 가능성이 높습니다.

답변

1

Mongo는 메모리 관리를 OS (메모리 맵 파일 메커니즘)에 릴레이합니다. 그래서 예, 일부 메모리 영역이 잠시 동안 액세스되지 않으면 시스템은 디스크에 변경 사항을 플러시 (해당하는 경우)하고 해제합니다.

예, 항상 활동이있을 때 프로덕션 환경에서 발생하지 않아야합니다.

+0

신속한 답변을 보내 주셔서 감사합니다. 나는 이것이 내 가정을 꽤 할 수 있다고 말한다. –

1

MongoDB가 메모리 매핑 파일을 사용하고 메모리 처리가 아래 운영 체제까지 으로 완전히 인 것으로 잘 알려져 있습니다. 그래서 당신의 운영 체제는 메모리에서 "별로 좋지 않은"페이지를 제거 할 것입니다.

관련 문제