목록 보기
누가 내 DB CPU를 훔쳐갔을까? (feat. debezium)
백엔드

누가 내 DB CPU를 훔쳐갔을까? (feat. debezium)

라포랩스
라포랩스
2023년 3월 16일

두줄요약

Debezium connector 재시작 때 오래된 binlog를 다시 읽으며 DB CPU가 급등한 원인을 분석했습니다. heartbeat.interval.ms를 적용해 상태 기록 주기를 보강하고 문제를 해결했습니다.

문제 상황

  • Debezium connector 재시작 시 메인 DB CPU가 간헐적으로 80% 이상 치솟는 현상
  • 트래픽 증가와 무관하게 SHOW BINARY LOGS 부하가 발생한 흔적

원인 분석

  • Network I/O 급증과 RDS Performance Insight를 통해 Debezium connect pod를 부하 주체로 특정
  • connector 상태가 최신이 아니라 며칠 전 binlog position으로 저장된 사실 확인
  • 변경이 적은 테이블을 추적할 때 상태 기록이 늦어져 재시작 시 오래된 binlog를 다시 읽는 구조

해결 방법

  • heartbeat.interval.ms 옵션으로 주기적 heartbeat와 상태 기록 유도
  • 재배포 후 binlog position이 주기적으로 갱신되고 CPU 급등 현상도 해소

다음 읽기

#Debezium 주제를 다룬 다른 회사 글

밑바닥부터 시작하는 실시간 데이터 파이프라인 : Debezium 톺아보기

기존 배치 적재의 지연을 줄이기 위해 Debezium 기반 실시간 CDC 파이프라인을 구축한 과정을 정리했습니다. Kafka Connect 구조, 스냅샷, 오프셋 관리와 성능 개선 포인트까지 살펴보았습니다.

여기어때
여기어때
백엔드

댓글 0

댓글을 작성하려면 로그인이 필요합니다.

댓글을 불러오는 중...