2012-03-26 2 views
3

각각 약 200 바이트의 약 300 억 레코드의 거대한 테이블이있는 데이터베이스에서 Mongo DB를 테스트 할 예정입니다. Sharding이 그런 종류의 볼륨에 필요하다는 것을 이해합니다. 따라서 한 대의 컴퓨터에서 1 ~ 20 억 개의 레코드를 얻으려고합니다. 필자는 각각 2 개의 CPU/6 코어와 64GB의 RAM이있는 시스템에서 10 억 개의 레코드를 생성했습니다. 색인없이 mongoimport-ed, 속도는 괜찮 았습니다 (평균 14k 레코드/s). 색인을 추가하는 데 오랜 시간이 걸렸지 만 일회성이므로 괜찮습니다. 이제 데이터베이스에 새 레코드를 삽입하는 데 오랜 시간이 걸립니다. 내가 알 수있는 한, 레코드를 삽입하는 동안 (CPU, RAM 및 I/O가 양호한 상태) 기계가로드되지 않습니다. 새 레코드를 빠르게 삽입하는 것이 어떻게 가능합니까?MongoDB 삽입 성능 - 두 개의 인덱스가있는 거대한 테이블

+0

당신이 삽입 속도가 지금의 우리에게 이야기 할 수 있습니까? 삽입 당 평균 밀리 세컨드 일 수도 있습니다. –

+0

테이블에 10 억 개의 레코드와 정의 된 2 개의 인덱스가있는 삽입 속도는 초당 약 200 레코드입니다. –

+0

2 색인은 어떤 종류의 색인입니까? _id 또는 희박하거나 고유하거나 정상입니까? – jianpx

답변

4

이 호스트를 MMS (http://mms.10gen.com/help/overview.html#installation)에 추가하는 것이 좋습니다. munin-node 지원과 함께 설치하면 가장 많은 정보를 얻을 수 있습니다. 이렇게하면 속도를 늦추는 원인을 추적 할 수 있습니다. 죄송합니다. 더 구체적으로 대답 할 수는 없지만 여기에는 가능한 많은 설명이 있습니다. 일부 일반 포인트 :

  • 추가 인덱스는 인덱스뿐만 아니라 작업 데이터 세트가 이제 RAM에있을 것, 이것이 당신의 자원 (페이지 오류 확인) 이제 인덱스를 가지고
  • 긴장했을 수 있음을 의미 , 삽입 할 때 업데이트해야합니다. 모든 것이 RAM에 들어 맞으면 OK입니다. 첫 번째 지점을 참조하십시오.
  • 디스크 IO를 점검하여 성능이 어떻게되는지 확인하십시오.
  • 올바른 파일 시스템 (XFS, ext4)과 커널 버전 2.6.25 이상을 실행하고 있습니까? (이전 버전 fallocate에 문제가())

후속 조치에 대한 몇 가지 좋은 일반 정보는 여기에서 찾을 수 있습니다 :

http://www.mongodb.org/display/DOCS/Production+Notes

관련 문제