모니터링 지표에 대한 고찰 : 다섯번째 대상 MongoDB

MongoDB는 단순 문서형 데이터베이스를 넘어 세션 저장소, 로그 분석, 메시징까지 다양한 영역에서 활용된다.
안정적 운영을 위해서는 가용성, 성능, 리소스, 커서·연결, 네트워크 영역별 주요 지표를 균형 있게 점검해야 한다.
아래는 일반적으로 반드시 살펴야 할 핵심 지표들이다.


1. 가용성 지표

uptime

  • MongoDB 프로세스가 실행된 누적 시간.
  • 긴 uptime은 안정적 상태를 의미하지만, 잦은 재시작은 장애나 설정 문제의 전조.
  • 운영 중에는 재시작 주기와 로그를 함께 점검하는 것이 중요하다.

2. 성능 지표

operation latency (total)

  • 모든 연산(insert, update, query, delete, command 등)에 소요되는 평균 처리 시간(ms).
  • 값이 낮게 유지되는 것이 정상.
  • 갑작스러운 상승은 인덱스 부재, 디스크 병목, Lock 경쟁 가능성을 의미한다.

operation throughput (rate)

  • 초당 실행되는 연산 건수(ops/sec).
  • 애플리케이션 부하 패턴을 읽는 데 유용하다.
  • 급격한 증감은 트래픽 이상이나 애플리케이션 오류 징후일 수 있다.

3. 리소스 지표

connections

  • MongoDB에 연결된 클라이언트 수.
  • 커넥션 풀 임계치에 도달하면 신규 연결 실패가 발생할 수 있으므로 추적이 필요하다.

memory usage (resident memory)

  • 프로세스가 점유하는 실제 물리 메모리.
  • MongoDB는 working set을 메모리에 유지하여 성능을 확보한다.
  • 메모리가 부족하면 page fault와 스왑이 발생해 지연이 급격히 늘어난다.

wiredTiger cache

  • MongoDB의 기본 스토리지 엔진 WiredTiger가 내부적으로 사용하는 캐시.
  • 자주 쓰이는 데이터 페이지를 메모리에 보관하여 디스크 접근을 줄인다.
  • 동작 flow: 문서 → 메모리 캐시 → 디스크 동기화. 캐시가 가득 차면 eviction이 발생해 오래된 페이지를 디스크에 기록하고 새로운 데이터를 올린다.
  • 캐시 사용률이 높게 유지되면 eviction 빈도가 늘어나고, 디스크 I/O 증가로 성능 저하가 발생한다.
  • 따라서 캐시의 크기와 사용률은 MongoDB 운영에서 가장 중요한 성능 지표 중 하나다.

4. 커서 및 클라이언트 지표

active clients

  • 실제 읽기/쓰기 연산을 수행 중인 클라이언트 수.
  • 순간적인 급증은 배치 작업이나 특정 쿼리 집중을 의미한다.

cursors

  • MongoDB에서 쿼리를 실행하면 결과 집합을 탐색하기 위해 커서가 열린다.
  • 동작 flow: 쿼리 실행 → 커서 생성 → 클라이언트가 데이터 수집 → 결과를 모두 가져가거나 timeout 시 커서 종료.
  • 커서가 장시간 열려 있으면 메모리와 리소스 낭비가 발생한다.
    • 위의 grafans dashboard에 지속적으로 ‘1’ 이 찍히고 있음
    • cursor=1이 항상 열려 있다는 말은 정상일 수도 있고, 코드 결함일 수도 있음.
    • 정상: change stream, tailable cursor 같이 계속 유지되는 작업.
    • 비정상: 일반 쿼리인데 닫히지 않는 경우 → 애플리케이션 코드 확인 필요.
    • 요약: 커서 1개는 무시해도 무방. 하지만 “왜 항상 열려 있는지”는 체크
  • timeout이 누적되면 애플리케이션이 데이터를 처리하지 못하고 방치했음을 의미한다.
  • 커서는 단순 수치 이상으로 애플리케이션 쿼리 패턴을 진단할 수 있는 핵심 지표다.

5. 네트워크 지표

network traffic

  • MongoDB가 송수신하는 데이터량(bytes/sec).
  • 일정 패턴을 유지하는 것이 정상이다.
  • 비정상적 증가 시 replication 과다, 대량 쿼리 응답, 혹은 애플리케이션 폭주 가능성이 있다.

✅ 운영 포인트 요약

  • Uptime → 안정성 확인의 기본 지표.
  • Operation Latency + Throughput → 성능 병목 탐지의 핵심.
  • Connections + Memory + WiredTiger Cache → 자원 한계 도달 여부 확인.
  • Cursors + Active Clients → 쿼리 패턴과 리소스 낭비 여부 점검.
  • Network Traffic → 데이터 흐름과 트래픽 집중 구간 감지.
ⓒ 2025 엉뚱한 녀석의 블로그 [quirky guy's Blog]. 본문 및 이미지를 무단 복제·배포할 수 없습니다. 공유 시 반드시 원문 링크를 명시해 주세요.
ⓒ 2025 엉뚱한 녀석의 블로그 [quirky guy's Blog]. All rights reserved. Unauthorized copying or redistribution of the text and images is prohibited. When sharing, please include the original source link.

🛠 마지막 수정일: 2025.09.18