관리 및 구성
공유하기:
관리 및 구성
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)은 반드시 켜두어야 합니다.