오픈소스 인사이트
home
오픈소스 기술 동향
home

MaxScale WCAR 기능 소개

들어가며

"새 버전으로 업그레이드했더니 갑자기 쿼리가 느려졌어요." "테스트 환경에서는 멀쩡했는데 운영에선 왜 이럴까요?"
DB를 운영하다 보면 한 번쯤은 이런 상황을 겪어보셨을 겁니다. 테스트 쿼리로는 문제가 없었는데, 막상 실제 운영 트래픽이 몰리니 장애가 터지는 황당한 경험이죠.
그렇다면 실제 운영 트래픽을 그대로 테스트 환경에서 재현할 수 있다면 어떨까요? 바로 그 기능이 MaxScale의 WCAR(Workload Capture & Replay) 입니다!
이번 포스팅에서는 WCAR이 무엇인지, 왜 필요한지, 어떻게 사용하는지까지 파헤쳐 보겠습니다.

WCAR이 뭔가요?

WCAR = Workload Capture & Replay
말 그대로 실제 운영 DB에서 발생하는 쿼리 트래픽을 '녹화'하고, 다른 서버에서 '재생'하는 검증 도구입니다.
마치 블랙박스처럼 — 실제 운영 쿼리를 파일로 저장해두고, 필요할 때 다른 환경에서 똑같이 재현하는 것이죠.

WCAR의 핵심 특징 3가지

 실제 워크로드 기반가상 쿼리가 아닌 100% 실제 운영 트래픽으로 검증 Proxy 레이어 캡처DB 서버에 직접 부하를 주지 않고 MaxScale에서 캡처 분석 리포트 제공쿼리별 성공/실패 및 성능 지연 리포트 자동 생성

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 기술지원 업무를 수행하고 있습니다.