If Atlas 클러스터의 프라이머리 노드 쓰기 차단 정책 임계값을 초과하는 것을 확인하면 Atlas 사용률이 차단 해제 임계값 아래로 떨어질 때까지 클러스터에 대한 쓰기를 차단합니다. MongoDB 클러스터 에 대한 쓰기를 수신하면 데이터를 디스크에 대량으로 플러시하므로 디스크 사용률이 크게 증가할 수 있습니다. 프라이머리 노드 의 디스크 공간이 부족하면 클러스터 다운타임이 발생할 수 있으며, 특히 모든 복제본 세트 노드에서 디스크 고갈이 연속적으로 발생하는 경우 더욱 그렇습니다.
이러한 시나리오를 방지하기 위해 Atlas가 클러스터의 프라이머리 노드 디스크가 중요 쓰기 차단 정책 임계값을 초과하는 것을 감지하면 클러스터의 프라이머리 노드에 대한 쓰기를 차단합니다. Atlas 디스크 사용률이 차단 해제 임계값 아래로 떨어질 때까지 쓰기를 계속 차단합니다.
프라이머리 노드 에서 쓰기 차단 동작을 활성화하여 Atlas 수행합니다.
프라이머리 노드 의 디스크 고갈로 인한 클러스터 사용 불가를 방지합니다.
클러스터가 최대 저장 사용률에 가깝게 작동하도록 허용하여 쓰기 (write) 볼륨이 갑자기 급증하는 경우에도 읽기 가용성을 유지합니다.
쓰기 차단 및 지능형 워크로드 관리
클러스터 쓰기 차단 동작은 MongoDB Atlas 의 Intelligent Workload Management(IWM)의 일부입니다. IWM 은 실시간 워크로드 모니터링 및 자동화된 보호 장치를 활성화하여 부하가 발생하더라도 고가용성 유지하는 동적 리소스 관리자입니다.
쓰기 차단 고려 사항
쓰기 차단 동작에는 다음과 같은 고려 사항이 있습니다.
Atlas 현재 MongoDB 8.0+를 실행 전용 클러스터의 복제본 세트(비샤드 클러스터)의 프라이머리 노드 에 대한 쓰기를 차단합니다.
Atlas 무료 및 Flex 클러스터에 대한 쓰기를 차단 하지 않습니다.
Atlas 프라이머리 노드 의 디스크 사용률만 모니터링합니다. Atlas 세컨더리, 읽기 전용, 검색 또는 분석 노드에서 디스크 사용률을 모니터 하지 않습니다.
Atlas 프라이머리 노드에 대한 쓰기를 차단하는 방법
쓰기를 차단 위해 Atlas 다음 프로세스 사용합니다.
프라이머리 노드의 디스크 여유 공간이 쓰기 차단 정책 임계값을 초과하면 Atlas 는 프라이머리 노드에 대한 쓰기를 차단합니다.
MongoDB database 쓰기를 허용하지 않는 경우에도 클러스터 읽기에 사용할 수 있습니다. 프라이머리 및 세컨더리 노드에서 정상적으로 읽을 수 있습니다.
Atlas 가 쓰기를 차단하면
Writes have been blocked on your cluster due to critically low disk space
경고 보냅니다. 활동 피드 이 경고 반영됩니다.Atlas UI 의 클러스터 페이지 상단에는 다음과 같은 배너가 표시됩니다.
"To maintain read availability during critically high disk utilization, Atlas has blocked writes to the following clusters: <clusterName>. Increase disk space or enable storage auto-scaling to unblock writes."
디스크 여유 공간이 차단 임계값을 초과하여 50% 증가하면 Atlas 프라이머리 노드 에 대한 쓰기 차단을 해제합니다. Atlas 가 쓰기 차단을 해제하면
Writes have been unblocked on your cluster
(이)라는 경고 표시됩니다.그러면 활동 피드 이 경고 반영됩니다. 추가 조치 필요하지 않습니다. 향후 쓰기 차단 동작을 방지하려면 클러스터 저장늘리는 것이 좋습니다.
클러스터 의 디스크 크기를 수동으로 늘리거나 저장 자동 확장 활성화 Atlas 새 디스크 크기에 따라 쓰기 차단 임계값을 자동으로 조정합니다.
쓰기 차단 방지
쓰기 차단 동작이 발생하지 않도록 하고 클러스터 Atlas 쓰기 차단 정책 임계값 미만으로 낮추려면 다음을 수행하는 것이 좋습니다.
디스크 사용률이 %를 초과할 때 클러스터 저장 자동으로 90확장하고 일관적인 워크로드 가용성과 성능을 보장하는 저장 자동 확장 활성화합니다.
Atlas UI 에서 저장 자동 확장 활성화 하려면 Cluster Tier 메뉴로 이동하여 Auto-scale 섹션에서 Storage Scaling 확인란을 선택합니다.
Atlas UI 에서 생성하는 모든 새 클러스터에 대해 Atlas 기본값 으로 저장 자동 확장 활성화합니다.
If you API 사용하여 클러스터를 생성하는 경우, 클러스터 자동 확장 기본값 으로 선택되지 않으며, 1개 프로젝트에서 1개 클러스터 업데이트 엔드포인트 의
autoScaling
객체 에 있는 옵션을 사용하여 명시적으로 활성화 해야 합니다.
저장 자동 확장 옵트아웃하기로 선택하고 디스크 사용률이 90%에 가까운 경우, Atlas 클러스터 에서 쓰기 차단 동작을 활성화하기 전에 기존 디스크 공간을 출시하다 할 수 있습니다.
사용하지 않는 데이터를 제거하여 디스크 공간을 확보하세요. 인덱스를 삭제하거나 컬렉션 또는 개별 문서를 삭제.
각 전용 클러스터 노드에서
autoCompact
명령을 사용하여 디스크 공간을 압축합니다.
쓰기 차단 정책 임계값 매개변수
Atlas 다음과 같은 쓰기 차단 임계값을 사용하여 쓰기 (write) 볼륨이 높은 디스크 사용률 시나리오를 수용합니다.
디스크 크기 < 20 GB | Atlas 는 디스크 여유 공간이 800 MB 아래로 떨어지면 쓰기를 차단합니다. 디스크 공간이 1.2 을 초과하면 Atlas 가 쓰기 차단을 해제합니다. GB |
디스크 크기 < 1.25 TB | Atlas 는 여유 디스크 공간이 총 디스크 크기의 4% 미만으로 떨어지면 쓰기를 차단합니다. 디스크 공간이 총 디스크 크기의 6%를 초과하면 Atlas 가 쓰기 차단을 해제합니다. |
디스크 크기 ≥ 1.25 TB | Atlas 는 디스크 여유 공간이 50 GB 미만으로 떨어지면 쓰기를 차단합니다. Atlas 디스크 여유 공간이 75 GB 초과하면 쓰기 차단을 해제합니다. |
임계값은 구성할 수 없습니다. 자동 확장 으로 인해 디스크 크기가 증가하거나 디스크 크기를 수동으로 늘리는 경우 Atlas 클러스터의 디스크 크기에 따라 임계값을 자동으로 조정합니다.
클러스터 에서 쓰기 차단 동작이 활성화되면 다음을 수행해야 합니다.
Edit Cluster (클러스터 편집) 페이지에서 클러스터 저장 수동으로 늘리거나 Atlas UI 에서 저장 자동 확장 활성화 향후 쓰기 차단 동작을 방지할 수 있습니다.
Atlas 데이터베이스 에 기록해야 하는 작업을 차단하므로 인덱스 또는 컬렉션을 삭제 수 없습니다. 인덱스 및 컬렉션을 삭제 하려면 클러스터 저장 늘립니다.
쓰기 차단 및 스토리지 자동 확장
Atlas 는 프라이머리 노드 의 여유 디스크 공간이 총 디스크 크기의 약 96%에 도달하면 쓰기를 차단하며, 소형 및 대형 디스크에 대한 주의 사항은 쓰기 차단 정책 임계값에 명시되어 있습니다.
반면 디스크 사용률이 총 디스크 크기의 90%에 도달하면 자동 확장 트리거됩니다. 이는 다음을 의미합니다.
자동 확장 활성화 쓰기 차단 동작이 활성화되기 전에 클러스터 확장하다 할 수 있습니다.
자동 확장 비활성화한 경우 디스크 사용률을 모니터 하고 쓰기 차단 동작이 활성화되지 않도록 조치 취해야 합니다.
쓰기 차단 문제 해결
Atlas 가 클러스터 에 대한 쓰기를 차단하면 다음 조치가 발생합니다.
Atlas UI 의 클러스터 페이지 상단에는 쓰기가 차단되었음을 나타내는 배너가 표시됩니다. Atlas 프라이머리 노드에 대한 쓰기를 차단하는 방법을 참조하세요.
Atlas 쓰기 차단 경고 를 발행하며, 클러스터 저장 늘려 해결할 수 있습니다. 스토리지 문제 해결도참조하세요.
프로젝트의 활동 피드 에는 이러한 경고가 반영됩니다.
Atlas 로그는 다음과 유사한
MongoServerError
를 반환합니다:User writes blocked, reason: DiskUseThresholdExceeded
.serverStatus 명령의
userWriteBlockMode
매개변수는 클러스터의 현재 쓰기 차단 상태를 반영합니다.
쓰기 차단 해제
Atlas 디스크 여유 공간이 차단 임계값을 초과하여 50% 증가하면 쓰기 차단을 해제합니다. 쓰기 차단 해제를 위한 예비 버퍼는 다음을 보장합니다.
Atlas 쓰기 차단 동작을 연속적으로 빠르게 활성화 및 비활성화하지 않습니다.
클러스터 쓰기를 다시 수락하기 시작하므로 양호한 상태 유지합니다.
정확한 매개변수는 쓰기 차단 정책 임계값을 참조하세요.