2016-08-11 2 views
0

우분투 16.04에서 MongoDB의 repairDatabase를 만들려고하는데 "errno : 24 너무 많은 열린 파일"("code": 16818) 오류로 실패합니다.repairDatabase 동안 MongoDB "열린 파일 제한"오류가 발생했습니다.

"ulimit -n"을 최대 1024000으로 올렸지 만 서버를 다시 시작했지만 여전히 동일한 오류가 발생합니다. 더 높이 올릴 수없는 것 같아서 아이디어가 없다. 도와주세요!

+0

몇 개의 콜렉션이 있습니까? 많은 컬렉션과 함께 WiredTiger 스토리지 엔진을 사용하는 경우 MongoDB는이 오류를 발생시킬 수 있습니다. 기본 인스턴스 또는 보조 인스턴스를 복구하려고합니까? – Jaco

+0

MMAP 스토리지 엔진을 사용하고 인스턴스가 하나뿐입니다. 약 10 개의 콜렉션이 있지만 그 중 하나가 꽤 큽니다 (DB 파일의 총 크기는 약 170GB입니다) –

답변

1

우리는 비슷한 문제에 직면했습니다. 먼저 repairDatabase() 명령을 실행하는 동안 "mongod"가 사용하는 파일 디스크립터의 수를 확인하십시오. "lsof -p mongod_pid"의 도움으로 확인할 수 있습니다 "최대 프로세스 수"를 변경하려면 항목을 추가하여 "/etc/security/limits.conf"파일을 편집해야합니다 몽고 프로세스에.

편집 : 같은 현재 "wiredtiger는"하나 개의 콜렉션 당 파일 및 인덱스를 엽니 다 는 또한 데이터베이스 당 파일을 열 이미 feature request있다. 또한 비용이 심각한 문제가 아니라면 샤딩으로 수평 적 스케일링을 심각하게 고려해야합니다.

+0

답장을 보내 주셔서 감사합니다! 솔직히 말하면, 문제는 꽤 오래되었고, 나는 그 때 그것을 어떻게 극복했는지 기억조차하지 않습니다. 그래서 지금 당신의 해결책을 실제로 확인할 수는 없습니다. 죄송합니다. –

+0

앞으로 비슷한 문제에 직면 할 수있는 사람에게 도움이 될 것이라고 생각했습니다. – user3526905

관련 문제