
백엔드
Spark Job 성능 모니터링과 최적화를 위한 Spark Analyzer 개발기
두줄요약
하루 6천 개가 넘는 Spark Job을 자동으로 점검하기 위해 Spark Analyzer를 개발했습니다.\nHistory Server 메트릭과 임계치 기반 규칙으로 성능 문제를 탐지하고 알림으로 연결했습니다.
문제 상황
- 하루 평균 6천 개 이상의 Spark Job이 운영되며, 비효율적인 작업이 누적되는 환경
- 파티션 불균형, 작은 파일 읽기, 디스크 스필 같은 성능 저하 요인 탐지 필요
- 화면을 직접 확인하는 방식의 비효율과 자동 경고 부재
원인 분석
- 작업 수가 많아 수동 점검과 개별 최적화가 현실적으로 어려움
- 시간이 지나며 데이터 양상이 바뀌어 기존에 효율적이던 작업도 비효율화
- History Server와 분석 도구를 반복 호출하는 구조의 운영 부담
해결 방법
- Spark History Server의 API와 자체 계산 메트릭으로 분석 체계 구성
- 작업 이력 수집 단계와 성능 분석 단계를 분리해 처리 효율 개선
- 스큐 비율, 평균 파일 크기, 스필 크기 기준으로 알림 생성
적용해볼 점
- 대량 배치 작업에서 자동 성능 감지와 경고 체계 도입
- 임계치 기반 탐지와 예외 조건을 함께 설계해 오탐 감소
- 문제 작업에 대한 후속 조치 자동화 확장