2012-02-20 4 views
2

mongodb를 테스트 중이며 약 3 주 내 테스트 단계에서 mongodb가 성공했습니다. 그러나 제작 시스템에서 사용하면 mongodb가 손상됩니다.MongoDB가 스트레스를 받아 추락했습니다.

내 시나리오 13 프론트 서버가 하나의 mongodb 서버를 통해 웹 요청을 받고 mongodb 콜렉션이 이러한 삽입 요청을 처리합니다. 650,000 분 삽입. 그리고 일반적으로 db serverstatus에는 110 개의 mongodb 연결이 있습니다.

매분마다 현재 모음의 이름을 바꾼 다음 이전 모음이 자동으로 만들어집니다. 프런트 서버에서 많은 요청이 왔기 때문입니다. 그리고 이름이 변경된 컬렉션의 데이터를 매분 SQL Server 데이터베이스로 옮깁니다.

처음 6 시간은 정상입니다. 하지만 나중에 mongodb 연결이 비정상적으로 3,500 개의 연결로 증가하고 있습니다. 현재 큐는 1500입니다. 그리고 프론트 서버는 mongodb로부터 응답을받을 수 없습니다.

이 오류가 발생하는 이유는 무엇입니까?

감사합니다.

+2

실행중인 버전은 무엇입니까? mongodb 로그 파일에는 무엇이 있습니까? – Derick

+2

또한 어떤 드라이버를 사용하고 있습니까? –

+0

mongodb C# 드라이버 1.2 및 Mongodb 2.0.3 버전 –

답변

0

-fsync 줄이기. 삽입 작업이 호출 될 때와 mongo가 실제로 수행 할 때 차이가 있습니다.

+0

을 사용하고 있습니다. fsync = false를 사용하고 있습니다. 뭔가 다른 것을 의미합니까? –

1

로그 외에 mongostat의 출력을 첨부 할 수 있습니까? 이 정보는 병목 현상이 될 수있는 부분을 안내해줍니다. 몽고 스탯 정보에 대한 자세한 내용은 http://www.mongodb.org/display/DOCS/mongostat에서 확인할 수 있습니다. 드라이버에서 SafeMode 옵션을 사용하고 있습니까? fsync가 실행되는 한 Ravi는 mongod 서버의 fsync 지연에 대해 이야기하고 있으며 fsync 간의 시간을 줄임으로써 데이터베이스를 더 자주 커밋하도록하고 있습니다. 클라이언트 측의 트래픽이 급증한 특정 시점에이 동작이 일관되게 나타 납니까?

0

mongodb에 대한 모든 요청시 새로운 연결이 생성되지 않도록 MongoDB connetion pooling을 사용해보십시오.

관련 문제