Database
MongoDB WiredTiger 스토리지 엔진 이해하기
WiredTiger의 MVCC, 캐시, 체크포인트, 성능 튜닝 포인트를 실무 중심으로 정리합니다.
MongoDB WiredTiger 스토리지 엔진 이해하기
WiredTiger를 이해할 때 중요한 건 구현 디테일보다 "병목이 어디서 생기는가"입니다.
핵심 동작
- WAL(저널) 기록
- 메모리 캐시에 반영
- 체크포인트 시 디스크 반영
이 순서 덕분에 장애 복구와 성능을 함께 잡습니다.
알아야 할 4가지
1) 문서 수준 동시성 + MVCC
읽기/쓰기가 서로 덜 막히므로 혼합 워크로드에서 유리합니다.
2) 캐시 튜닝
캐시가 작으면 eviction 압력이 커지고 지연이 튑니다. 크면 시스템 전체 메모리 압박이 옵니다. 관측 후 조정이 필수입니다.
3) 체크포인트/저널
내구성 설정을 낮춰 TPS를 올릴 수 있지만 장애 시 손실 범위가 늘어납니다. SLO 기준으로 결정해야 합니다.
4) 압축
저장공간과 CPU의 트레이드오프입니다. 일반적으로 기본 압축에서 시작해 I/O 병목이 심할 때만 재평가하는 것이 안전합니다.
운영 체크리스트
serverStatus().wiredTiger를 정기 수집- eviction 지표와 write latency를 함께 관찰
- checkpoint 스파이크 시간대를 파악
- 대량 배치 작업은 평시 트래픽과 분리
결론
WiredTiger 튜닝은 단일 옵션 최적화가 아니라 캐시, 체크포인트, 저널 정책을 함께 맞추는 작업입니다.