들어가며
"새 버전으로 업그레이드했더니 갑자기 쿼리가 느려졌어요." "테스트 환경에서는 멀쩡했는데 운영에선 왜 이럴까요?"
DB를 운영하다 보면 한 번쯤은 이런 상황을 겪어보셨을 겁니다. 테스트 쿼리로는 문제가 없었는데, 막상 실제 운영 트래픽이 몰리니 장애가 터지는 황당한 경험이죠.
그렇다면 실제 운영 트래픽을 그대로 테스트 환경에서 재현할 수 있다면 어떨까요? 바로 그 기능이 MaxScale의 WCAR(Workload Capture & Replay) 입니다!
이번 포스팅에서는 WCAR이 무엇인지, 왜 필요한지, 어떻게 사용하는지까지 파헤쳐 보겠습니다.
WCAR이 뭔가요?
WCAR = Workload Capture & Replay
말 그대로 실제 운영 DB에서 발생하는 쿼리 트래픽을 '녹화'하고, 다른 서버에서 '재생'하는 검증 도구입니다.
WCAR의 핵심 특징 3가지
WCAR, 왜 필요할까요?
실무에서 진짜 필요한 5가지 상황을 살펴볼게요.
01. 업그레이드 위험 감소
신규 버전으로 구성된 테스트 환경에서 실제 워크로드를 재생하여 예상치 못한 성능 저하나 장애를 사전에 확인하고 조치할 수 있습니다.
02. 성능 Benchmarking
다양한 MariaDB 설정값에 대해 실제 앱 트래픽으로 재현하고, 서비스·목적·성능에 최적화된 DB 파라미터를 도출할 수 있습니다.
03. 장애처리 및 Debugging
운영 환경에서 발생한 간헐적 성능 장애를 동일한 쿼리 패턴으로 테스트 환경에서 재현하여 근본 원인을 분석합니다.
04. 용량 산정 및 부하 Test
다양한 속도로 워크로드를 재생하여 인프라의 한계 용량을 파악하고, 미래 비즈니스 성장에 맞는 스펙을 사전 검증할 수 있습니다.
05. 감사 및 규정준수
실제 클라이언트 트래픽을 기록하고, 감사 프로세스를 통해 내·외부 규정 및 감사 요건을 충족하는지 확인 가능합니다.
WCAR은 어떻게 동작하나요?
WCAR의 전체 흐름은 4단계로 아주 간단합니다!
[01. Capture] → [02. Migration] → [03. Replay] → [04. Analyze]
Step
— Capture (캡처)
MaxScale을 Proxy로 활용하여 운영 DB로 들어오는 모든 쿼리 트래픽을 실시간으로 기록합니다.
•
소스 DB에 부하를 주지 않는 방식이라 운영 중에도 안전하게 실행 가능
•
정교한 트랜잭션 순서 보장
Step
— Migration (이관)
캡처된 데이터와 스키마를 타깃 서버 환경에 맞게 이관합니다.
Step
— Replay (재생)
MaxReplay 도구를 사용해 타깃 서버에서 캡처된 트래픽을 그대로 재현합니다.
•
1배속, 2배속 등 속도를 조절하여 부하 테스트도 가능
Step
— Analyze (분석)
실시간으로 서버 프로그램과 타깃 서버로 전송되어, 성공 결과 및 성능 차이를 시각화합니다.
실제로 어떻게 설정하나요?
WCAR 설정은 생각보다 훨씬 간단합니다. MaxScale 설정 파일(maxscale.cnf)에 몇 줄만 추가하면 됩니다!
maxscale.cnf 설정 예시
[WCAR]
type=filter
module=wcar
capture_duration=1h # 1시간 동안 캡처 제한
capture_size=1Gi # 1GB 용량 제한
start_capture=true # MaxScale 시작 시 즉시 실행 |
동적 제어도 가능해요 (maxctrl)
운영 중에 캡처를 시작/중단하고 싶다면? maxctrl 명령어 하나면 됩니다.
maxctrl call command wcar start WCAR prefix=Scenario1 size=10G |
정리하며
WCAR 기능을 한 줄로 요약하면:
"운영 DB 트래픽을 그대로 녹화해서, 필요할 때 다른 환경에서 재생하는 MaxScale의 강력한 검증 도구"
•
업그레이드 전 검증 — 실제 트래픽으로 사전 테스트, 예상치 못한 장애를 미리 잡는다
•
성능 파라미터 튜닝 — 가상이 아닌 실제 쿼리로 최적 설정값을 찾아낸다
•
버그 재현 & 디버깅 — 운영에서만 나타나는 간헐적 장애를 테스트 환경에서 똑같이 재현한다
•
용량 산정 & 부하 테스트 — 속도를 올려 재생하면서 인프라 한계를 사전에 파악한다
•
감사 & 규정 준수 — 실제 트래픽 기록으로 내·외부 감사 요건을 충족한다
참고 자료
김미연 프로
오픈소스사업부 오픈소스기술팀
오픈소스 DBMS 엔지니어로서, 삼성 그룹 계열사 및 대외 금융권 기업들의 DBMS 기술지원 업무를 수행하고 있습니다.

