복붙노트

[MONGODB] MongoDB를 제한 메모리

MONGODB

MongoDB를 제한 메모리

나는 로그 파일을 저장하기 위해 몽고를 사용하고 있습니다. MongoDB를하고 mysql을 모두 동일한 시스템, 가상화 몽고 ENV에서 실행하는 것은 옵션이 아닙니다. 나는 로그 테이블이 매우 빠르게 성장함에 따라 곧 반환 한 문제로 실행됩니다 두렵다. 그것이 가능한 모든 메모리를 먹고 과도하게 MySQL 서버를 느리게하지 않습니다 그래서 몽고에 대한 상주 메모리를 제한 할 수있는 방법이 있습니까?

DB 시스템 : 데비안 레니 '(5)

기타 솔루션 (코멘트를하시기 바랍니다)

해결법

  1. ==============================

    1.안녕 블라드, 당신은 로그에 대한 여기에 간단한 전략의 몇 가지있다.

    안녕 블라드, 당신은 로그에 대한 여기에 간단한 전략의 몇 가지있다.

    알고 우선 몽고는 일반적으로 RAM을 많이하지 않고 연속 삽입을 많이 처리 할 수 ​​있다는 것입니다. 그 이유는 당신은 단지 삽입하거나 최근 물건을 업데이트 간단하다. 인덱스의 크기가 증가하지만, 그래서 데이터가 끊임없이 호출됩니다.

    인덱스 및 데이터 : 다른 방법을 넣어, 당신은 두 개의 주요 부분으로 RAM의 사용을 중단 할 수 있습니다.

    당신은 전형적인 로깅을 실행하는 경우, 데이터 부분은 지속적으로 RAM 너무에만 인덱스 정말 숙박, 플러쉬되고있다.

    알고 두 번째 것은 당신이 작은 버킷으로 로그를 넣어 인덱스의 문제를 완화 할 수 있다는 것입니다. 그것을 이런 식으로 생각하십시오. 당신이 날짜 스탬프 콜렉션에 모든 로그를 수집하는 경우, 당신은 또한 RAM에 인덱스의 크기를 제어 할 수 있습니다 (이 logs20101206 전화).

    당신이 일을 이월으로 이전 인덱스는 RAM에서 플래시 해 단순히 멀리 갈 것입니다 그래서 다시 액세스 할 수 없습니다.

    일에 의해 로깅이 방법은 삭제 된 데이터를하는 데 도움이됩니다. 당신이 데이터를 완료하면 석 달 당신은 단순히 db.logs20101206.drop 할 ()와 컬렉션은 즉시 사라집니다. 당신은하지만, 새로운 데이터 빈 자리를 채울 것이다 (이것은 모든 사전 할당이의) 디스크 공간을 회수하지 않습니다.

    예.

    사실, 나는 내 데이터 객체에 내장되어 있습니다. logs.action 또는 로그 -> 동작하지만, 아래를 사용하여 I 데이터에 액세스 그래서, 데이터가 실제로 logs.a.에 저장됩니다 그것은 그것의 가치는 "필드"를 축소하고 다른 곳을 추상화하려고, 그래서 "값"보다는 "필드"에 더 많은 공간을 보내고 정말 쉽습니다.

  2. ==============================

    2.wiredTiger 엔진을 사용하여 버전 3.2 이상, 들어, 옵션 --wiredTigerCacheSizeGB는 질문에 관련이있다. 당신은 당신이 정확히 무엇을하고 있는지 알고 있다면 당신은 그것을 설정할 수 있습니다. 나는 그것이 최선의 방법 인 경우에, 단지 문서에서 읽고 여기를 제기 모른다.

    wiredTiger 엔진을 사용하여 버전 3.2 이상, 들어, 옵션 --wiredTigerCacheSizeGB는 질문에 관련이있다. 당신은 당신이 정확히 무엇을하고 있는지 알고 있다면 당신은 그것을 설정할 수 있습니다. 나는 그것이 최선의 방법 인 경우에, 단지 문서에서 읽고 여기를 제기 모른다.

  3. ==============================

    3.Windows의 경우는, 메모리 MongoDB를 사용하는의 양을 제어 선장 Codeman에서이 튜토리얼을 볼 수 같다 :

    Windows의 경우는, 메모리 MongoDB를 사용하는의 양을 제어 선장 Codeman에서이 튜토리얼을 볼 수 같다 :

    가상화되지 않은 Windows에 제한 MongoDB의 메모리 사용

  4. from https://stackoverflow.com/questions/4365224/mongodb-limit-memory by cc-by-sa and MIT license