mongodb占物理内存
ringa_lee
ringa_lee 2017-04-24 09:13:16
0
4
907

mongodb占物理内存,我们一台服务器8G内存,没有开mongodb的时候,物理内存只占11%,当开了mongodb,mongodb进程的内存显示是60M,但物理内存已经是99%,请问是什么原因?有没有优化的办法,我们是在WINDOWS系统.

ringa_lee
ringa_lee

ringa_lee

모든 응답(4)
伊谢尔伦

Tang Jianfa라는 사람이 다음과 같이 말한 것을 기억합니다. MongoDB는 메모리를 먹지 않지만 원래 의도는 의도적으로 메모리를 점유하는 것입니다.

大家讲道理

Mongodb 자체는 메모리 관리를 하지 않으며, 메모리 관리는 전적으로 시스템에 달려 있습니다. 시스템 성능 모니터를 사용하여 메모리와 가상 메모리를 확인할 수 있습니다. 간단히 말하면, mongdb는 가지고 있는 만큼의 메모리를 소모하게 되기 때문에 성능 향상을 위해 대부분의 핫 데이터를 메모리에 집어넣는다는 것이 결국 장점이기도 합니다.
저희 서버는 Windows Server 2008로 메모리가 32G 정도인데 일정시간 실행해보니 성능이 놀라웠어요. 그런데 그 서버에 mongodb만 있는 게 아니라서 다른 프로그램에도 영향을 끼치는 경우가 많았거든요. 나중에 우리는 Windows 시스템 리소스 관리자 WSRM을 사용하여 mongodb 프로세스의 메모리를 제한하려고 했습니다. 실제로 시도해 볼 수 있습니다.
그런데 재작년부터 mongodb를 사용하기 시작했는데, 그 당시 버전은 상대적으로 오래되어 메모리를 제한한 후 mongodb가 매우 불안정하여 로그를 보면 일반적으로 매핑된 메모리를 찾을 수 없다는 의미였습니다. 그래서 나중에 우리는 메모리 제한을 포기하고 mongodb 명령을 사용하여 매일 고정된 지점에서 메모리를 해제하는 방식으로 전환했습니다 {closeAllDatabases:1}
이 명령 역시 비용이 들고, 명령이 완료될 때까지 차단되며, 해제된 직후에는 효율성이 감소하며 천천히 회복하려면 '준비' 기간이 필요합니다.
저는 후자의 방법이 좋다고 생각하는데, 지난 2년간의 관찰을 통해 모든 것이 비교적 안정적이라고 생각합니다. 물론 mongodb에 별도의 서버를 제공할 수 있다면 정말 좋겠습니다.

迷茫

새로운 MongoDB 엔진은 자신을 시스템에서 유일하게 중요한 서비스로 간주하므로 운영 체제의 캐시가 아닌 자체 캐시만큼 많은 메모리를 차지하려고 합니다. 다른 프로세스를 위해 메모리를 예약해야 하거나 여러 MongoDB 인스턴스가 있는 경우 --cacheSizeGB 매개변수를 사용하여 MongoDB 캐시 크기를 제한할 수 있습니다.

刘奇

매일 아침 캐시를 지우는 스크립트를 작성했습니다. . .
http://onwise.xyz/2017/02/23/...

최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿