Atlas Search 문제 해결
Atlas Search는 Atlas Search 프로세스에서 사용하는 CPU 및 메모리 양이 지정된 임계값에 도달하면 Atlas Search 경고를 트리거합니다. 검색 프로세스(mongot
)의 메모리가 부족하면 인덱싱 및 쿼리가 실패합니다. 프로젝트 경고 설정 모달에서 Atlas Search 경고 조건을 구성할 수 있습니다. 클러스터 모니터링을 통해 Atlas Search 지표를 볼 수도 있습니다.
경고
이미 Atlas Search 인덱스가 있는 컬렉션을 샤드하는 경우, 컬렉션이 샤드에 표시되기 시작할 때 잠시 동안 쿼리 중단 시간이 발생할 수 있습니다. 또한 이미 샤드된 컬렉션에 대한 샤드를 추가하고 Atlas Search 인덱스가 포함된 경우, 추가된 샤드에서 초기 동기화 프로세스가 완료될 때까지 해당 컬렉션에 대한 검색 쿼리가 실패합니다. 자세한 내용은 초기 동기화 프로세스를 참조하세요.
경고 조건
프로젝트 수준 경고 설정 페이지에서 다음과 같은 경고 조건을 구성하여 경고를 트리거할 수 있습니다.
Atlas Search: Index Replication Lag
는 Atlas Search가 의 oplog 에서 변경 사항을 mongod
복제하는 데 지연된 대략적인 시간이 임계값보다 높거나 낮을 경우 발생합니다.
Atlas Search: Index Size on Disk
디스크에 있는 모든 Atlas Search 검색 인덱스의 총 크기(바이트)가 임계값보다 높거나 낮을 때 발생합니다.
Atlas Search: Max Number of Lucene Docs
지정된 복제본 세트 또는 샤드에 대한 Atlas Search 인덱스를 저장하는 데 사용되는 Lucene Docs의 상한 수가 임계값을 초과하는 경우 발생합니다.
디스크 사용률이 높아 Atlas Search mongot
프로세스에서 복제가 중단되는 경우 전용 검색 노드에서만 Atlas Search: Mongot stopped replication
이 발생합니다. 복제 일시 중지 임계값은 90%이고 복제 다시 시작 임계값은 85% 디스크 사용률입니다. 복제가 오랫동안 일시 중지되면 mongot
프로세스가 oplog에서 제외됩니다. mongot
프로세스가 oplog에서 제외되면 Atlas는 인덱스를 다시 작성합니다. 그러나 검색 인스턴스를 확장하거나 Atlas Search 인덱스를 삭제하면 mongot
가 oplog에서 제외되는 것을 방지할 수 있습니다.
Atlas Search: Number of Error Queries
Atlas Search가 응답을 반환할 수 없는 쿼리 수가 임계값보다 높거나 낮을 경우 발생합니다.
Atlas Search: Number of Index Fields
Atlas Search 인덱스에 있는 고유 필드의 총 개수가 임계값보다 높거나 낮을 때 발생합니다.
Atlas Search: Number of Successful Queries
Atlas Search가 성공적으로 응답을 반환한 쿼리 수가 임계값보다 높거나 낮을 경우 발생합니다.
Atlas Search: Total Number of Queries
Atlas Search에 제출된 쿼리 수가 임계값보다 높거나 낮을 때 발생합니다.
Atlas Search Opcounter: Delete
는 초당 제거되는 총 문서 또는 필드 수(인덱스 정의에 지정됨)가 임계값보다 높거나 낮은 경우 발생합니다.
Atlas Search Opcounter: Getmore
는 초당 모든 Atlas Search 쿼리에서 실행되는 getmore
명령 총 수가 임계값보다 높거나 낮을 경우 발생합니다.
Atlas Search Opcounter: Insert
Atlas Search가 초당 검색 인덱스하는 총 문서 또는 필드 수(인덱스 정의에 지정됨)가 임계값보다 높거나 낮을 때 발생합니다.
Atlas Search Opcounter: Update
Atlas Search가 초당 업데이트하는 총 문서 또는 필드 수(인덱스 정의에 지정됨)가 임계값보다 높거나 낮을 경우 발생합니다.
Insufficient disk space to support rebuilding search indexes
클러스터의 디스크 여유 공간이 부족하여 Atlas Search 인덱스를 지원할 때 발생합니다.
참고
이 경고는 Atlas가 새로운 기능을 활성화하기 위해 검색 인덱스를 자동으로 업그레이드할 때 나타날 수 있습니다. 클러스터에는 이전 버전과 새 버전의 인덱스를 모두 저장할 수 있는 충분한 디스크 공간이 필요합니다. 만약 재구성이 디스크 공간 사용량을 90% 이상으로 증가시킨다면 자동 확장을 활성화한 경우 Atlas는 클러스터 저장 용량을 늘립니다. 인덱스 업그레이드가 완료되면 Atlas는 이전 버전의 인덱스를 삭제하여 디스크 공간을 확보합니다.
Search Memory: Resident
Atlas Search 프로세스가 차지하는 상주 메모리의 총 바이트가 임계값보다 높거나 낮을 때 발생합니다.
Search Memory: Shared
Atlas Search 프로세스가 차지하는 공유 메모리의 총 바이트 수가 임계값보다 높거나 낮을 때 발생합니다.
Search Memory: Virtual
Atlas Search가 차지하는 가상 메모리의 총 바이트 수가 임계값보다 높거나 낮을 때 발생합니다.
Search Process: CPU (Kernel) %
CPU가 Atlas Search 프로세스에 대한 운영 체제 호출을 처리하는 데 소비한 시간의 비율이 임계값을 초과하는 경우 발생합니다.
Search Process: CPU (User) %
CPU가 Atlas Search 프로세스를 서비스하는 데 소비한 시간의 비율이 임계값을 초과하는 경우 발생합니다.
Search Process: Disk space used
Atlas Search 프로세스에서 사용하는 디스크 공간의 총 바이트 수가 임계값을 초과하는 경우 발생합니다.
Search Process: Ran out of memory
는 검색 프로세스(mongot
)가 메모리를 소진할 경우 발생합니다. 검색 프로세스에 메모리가 부족하면 인덱싱 및 쿼리가 실패합니다.
참고
Search Process: Ran out of memory
경고는 기본적으로 자동으로 실행됩니다. 알림 설정을 구성하여 이 경고를 비활성화할 수 있습니다.
일반적인 트리거
Atlas Search 경고는 크거나 복잡한 검색 인덱스를 빌드하려고 할 때 종종 발생합니다. 이러한 인덱스는 메모리 문제를 해결할 때까지 Initial Sync 단계에 유지됩니다.
즉각적인 문제 해결
검색 프로세스(mongot
)에 메모리 또는 디스크 공간이 부족한 경우 cluster 업그레이드하여 즉각적인 문제를 해결할 수 있습니다. 메모리, 스토리지, IOPS 가 더 많은 클러스터 계층을 선택할 수 있습니다.
장기적인 솔루션 구현
향후 Atlas Search 경고를 방지하려면 Atlas Search의 Atlas Search 성능 개선을 주의 깊게 검토하세요.
인덱스를 최적화하려면 전용 검색 노드를 배포하는 것이 좋습니다. 이를 통해 Atlas 클러스터와 $search
워크로드를 독립적으로 확장할 수 있습니다. 전용 검색 노드는 mongot
프로세스만 실행하므로 mongot
프로세스의 가용성, 성능 및 작업 부하 분산이 향상됩니다.
진행 상황 모니터링
사용 가능한 Atlas Search 차트를 보고 Atlas Search 지표를 모니터링하세요.
Atlas Search 지표를 모니터링하여 Atlas Search 인덱스를 평가하고 최적화하세요.
자세한 내용은 클러스터 지표 보기를 참조하세요.