관리 및 구성

70_Lecture/MongoDB
공유하기:

관리 및 구성

1. 스토리지 엔진 (WiredTiger)

MongoDB의 현재 기본 스토리지 엔진으로, 탁월한 성능과 동시성 제어를 제공합니다.

  • Document-Level Concurrency Control: 쓰기 작업 시 도큐먼트 수준에서 잠금(Lock)을 걸어 여러 스레드가 동시에 접근 가능.
  • Checkpoints: 약 60초마다 데이터를 디스크에 기록하여 복구 시점 제공.
  • Compression: snappy (기본), zlib, zstd 등을 사용하여 디스크 공간 절약.

2. 구성 파일 (mongod.conf)

YAML 형식으로 작성되며 서버의 운영 방식을 정의합니다.

주요 설정 항목

  • net: port (기본 27017) 및 bindIp 설정.
  • storage: 데이터 경로(dbPath) 및 엔진 설정.
  • systemLog: 로그 파일 경로 및 로그 수준(verbosity).
  • replication: 레플리카 셋 이름 지정.

3. 유지 보수 작업

  • 인덱스 리빌딩 (Compact): 조각화된 데이터를 정리하고 인덱스를 다시 생성하여 성능 확보.
  • Free Space 관리: compact 명령어를 사용해도 OS에 공간이 즉시 반환되지 않을 수 있다는 점 유의.
  • 로그 로테이션 (Log Rotation): 로그 파일이 비대해지는 것을 방지하기 위해 파일 교체 주기를 관리.

4. 실습 명령어

# 설정 파일을 사용하여 mongod 실행
mongod --config /etc/mongod.conf
 
# 쉘에서 런타임 설정 확인
db.adminCommand({ getParameter: "*" })
 
# 로그 로테이션 수행 (쉘 명령어)
db.adminCommand({ logRotate: 1 })

5. 시험 팁 (Certification Tips)

  • WiredTiger가 도큐먼트 수준 잠금을 지원한다는 사실은 단골 시험 문제입니다.
  • bindIp를 설정하지 않거나 0.0.0.0으로 열어둘 때의 보안상 위험을 인지하세요.
  • 메모리 사용량 제한을 위한 wiredTigerCacheSizeGB 파라미터 설정을 이해하세요.

6. 베스트 프랙티스

  • 대규모 트래픽 발생 전, WiredTiger 캐시 크기가 가용 RAM의 약 50% 수준으로 적절히 할당되었는지 확인하세요.
  • 물리적인 디스크 손상에 대비하여 저널링(Journaling)은 반드시 켜두어야 합니다.