목록 보기
MySQL online alter부터 CPU 100% 장애까지
백엔드

MySQL online alter부터 CPU 100% 장애까지

데브시스터즈
데브시스터즈
2023년 9월 5일

두줄요약

운영 중인 MySQL 대용량 테이블에 online alter를 적용한 과정과, 이후 CPU 100% 장애를 해결한 경험을 공유했습니다. Percona Toolkit과 캐시 구조 개선으로 서비스를 정상화했습니다.

문제 상황

  • 신규 기능인 패키지 매출 랭킹 구현을 위해 구매 시점 정보와 인덱스 추가가 필요했지만, 운영 중인 대용량 MySQL 테이블 특성상 일반 ALTER TABLE과 점검 시간 적용이 어려운 상황
  • online alter 도입 과정에서 MySQL inplace algorithm은 간헐적 Duplicate entry 오류로 폐기

해결 방법

  • Percona Toolkit의 pt-online-schema-change로 staging, production 복제본, staging, production 순으로 단계적 검증 후 적용
  • chunk-size 조정으로 CPU 사용량을 확인하며 250으로 결정하고, 트리거·복사·스왑 방식의 online schema change 수행

성능/운영 포인트

  • 배포 후 쿼리 최적화 미흡과 서버별·게임데이터별 캐시 분산으로 Database CPU가 100%까지 상승
  • 쿼리 조건 단순화와 스케줄러 서버 기반 단일 캐시 구조로 변경해 DB 쿼리 실행 횟수와 부하를 감소

댓글 0

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

댓글을 불러오는 중...