2014-04-16 4 views
1

mongodb에 대한 테스트를하고 있습니다. mongo의 버전은 2.4.9입니다. 그리고 데이터베이스에 내가 좋아하는 모음에 삽입 된 문서의 이상 2.5 수백만이 있습니다MongoDB 스트레스 테스트

컬렉션은 지금 인덱싱, 데이터를 삽입하는 좋은 작업, 문제는 내가 randomically 읽으려고 할 때 발생

[{"_id": _id, "id" : _id, "row1": "0000-000000000-000000000-00", "meta" : "domainName", "type" : "domainType", "timestamp" : "", "relations" : { "direct" [], "indirect": ["domain1", "domain2"]}, "extension" : "net", "usage" : "intranet","extraValue":Math.random()}, ...] 
aprox를 사용하여 데이터베이스의 데이터. 비 특정 문서를 2 초마다 검색하는 100 개의 스레드 (새 작업이 시작될 때마다 2 초) 작업은 간단하고, 문서를 읽고 다른 문서와 링크 된 (참조만으로) 새 문서를 삽입합니다. 작업은 무작위 검색에 영향을 미치지 않습니다. 처음 255 분이 지나면 잘 작동하지만 25 분이 지난 후에는 연결이 닫히거나 다시 채워집니다. CPU 사용량은 정상이며 네트워크 사용량도 정상이며 다른 데이터베이스와 동일한 문제가 없습니다. mongo에서 데이터를 읽는 순간 몇 가지 고려 사항이 있습니까? 아니면 운전자의 문제 일 수 있습니까? 지금은 mongodb MongoClient 드라이버와 node.js 및 mongo를 사용하여 테스트합니다.

+0

자세한 내용을 입력해야합니다. 연결을 제대로 풀링/닫으시겠습니까? 테스트를 실행하는 동안'db.serverStatus(). connections'를보십시오. – Sebastian

+0

> db.serverStatus(). 연결 '{ "현재": 7, "사용 가능": 6546, "totalCreated": NumberLong (2710345)}' – MrMins

답변

0

해당 문제가 서버 또는 클라이언트에서 발생한 것인지 확인하는 것이 좋습니다. 서버에서 당신은 다음 사항을 확인할 수있는 분명 문제에 대한

  • MongoD 로그 서버에 대한
  • 하고 ulimit를보고되는 - 당신의 MongoD 인스턴스가 리눅스 (또는 유닉스의 맛) 서버에서 실행되는 가정. 리눅스/유닉스, 풀링 된 연결
  • 을 위해하고 ulimit
  • 확인을 선택하면

    • 클라이언트 응용 프로그램의
    • 합니까 다시 시작하여 문제가 해결 : 당신이 확인할 수있는 클라이언트에

    ? 그렇다면 확실히 클라이언트 문제처럼 보일 수 있지만 서버 검사는 유용하게 사용할 수 있습니다.