여러 호스트가 상호 작용하는 Mongo 서비스가 있습니다. Mongo 서비스가 실행되는 호스트는 매우 특별합니다. 3TB의 RAM이 있습니다. 그러나 해당 호스트는 또한 간헐적 인 버스 오류 응답을 발생시킵니다. Mongo 서비스 프로세스 내에서 버스 오류가 발생하면 서비스가 중지되고 리소스와 상호 작용하는 모든 셀러리 (Python) 프로세스에 연결 거부 응답이 제공됩니다.
Mongo 서비스를 허용하는 방법이 있습니까? 어떻게 든 버스 오류에서 복구하려면? 샤딩이이 문제에 도움이 될 수 있습니까? 애플리케이션 구성 수준에서 만들 수있는 버스 오류에 대한 다른 잠재적 솔루션이 있습니까? 다른 사람들이이 질문에 대해 제안 할 수있는 제안에 감사드립니다!
도움이된다면 최신 버전을 사용할 수 있도록 RedHat의 소스에서 Mongo를 구축했습니다. 현재 설치된 버전은 3.6.4입니다.
코멘트
- 버스 오류는 RAM을 처리하려는 일부 프로세스에서 발생합니다 (해결할 수 없음). HW / SW 호환성.
- @dezso 애플리케이션 수준에서이 문제를 해결할 수 없습니까?이 경우 하드웨어에 영향을주지 않고 ' 구성 할 수 있습니다. mongo 애플리케이션 …
- 음, MongoDB가 메모리를 제대로 처리 (주소 지정) 할 수없는 것 같습니다. 이것은 설정을 조정하여 수정할 수있는 문제가 아닙니다 (하지만 MongoDB를 실제로 알지 못하는 상태에서이 말을하고 있습니다). ' 개발자에게 문제를 제기 할 것을 제안합니다. 개발자가 여기에있는 누구보다 더 나은 아이디어를 가지고있을 수 있습니다.
- @duhaime, " 버스 오류?. 소프트웨어 수준 또는 하드웨어 레이블에서 왔습니까? Linux 환경에서 " smartmontools "를 통해 확인 했습니까?
- @MdHaidarAliKhan이 버스 오류는 하드웨어 수준이지만 ' 응용 프로그램 계층에서 예외를 포착하고 싶습니다 …
답변
Mongo 서비스에서 버스 오류 처리
MongoDB 설명서 여기 smartctl
를 실행하는 것도 도움이됩니다. SMART 하드웨어 오류를 확인하기위한 ( smartmontools 의 일부) :
sudo smartctl -a /dev/sdb
Linux를 실행할 수도 있습니다. fsck
유틸리티는 Linux 파일 시스템을 확인하고 복구하는 데 사용됩니다 (ext2
, ext3
, ext4
등).
파일이 마지막으로 생성 된 시간에 따라 시스템이 확인되면 시스템은 부팅시 fsck
를 실행하여 파일 시스템이 일관된 상태인지 확인합니다. 시스템 관리자는 파일 시스템에 문제가있을 때 수동으로 실행할 수도 있습니다.
데이터 손상을 방지하려면 마운트 해제 된 파일 시스템에서 fsck
를 실행해야합니다. 문제.
답변
버스 오류 는 가장 자주 발생하는 프로그램 버그,이 경우 MongoDB 자체 또는 드물게 하드웨어 문제입니다. 따라서 가장 먼저 시도해야 할 것은 최신 안정 버전으로 업그레이드하는 것입니다. 문제가 지속되면 Mongo에 버그 보고서를 제출하는 것 외에는 할 수있는 일이별로 없습니다.