본문으로 이동
Spark Job 성능 모니터링과 최적화를 위한 Spark Analyzer 개발기
문서

Spark Job 성능 모니터링과 최적화를 위한 Spark Analyzer 개발기

김문수 토스 · 토스 기술 블로그

원문 보기

AI 핵심 요약

하루 6천 개가 넘는 Spark 작업을 일일이 확인하기 어려워 성능 저하를 자동으로 찾아내는 Spark Analyzer를 만들었습니다. DataFlint는 유용한 시각화 도구였지만 당시 REST API가 없어 자동화에 적합하지 않았고, 대신 Spark History Server API로 작업 이력을 수집해 메트릭을 직접 계산하기로 했습니다. 원본 데이터 수집과 성능 분석을 두 단계로 나누고 실행 주기를 시간 단위로 줄였으며, 파티션 불균형·작은 파일·디스크 스필을 기준과 임계치에 따라 감지해 해결 방법과 함께 알림을 보냈습니다. 그 결과 6천 개 이상의 작업에서 1천 개 이상의 잠재적 문제를 발견했으며, 앞으로는 알림 확대와 담당자 대상 JIRA 티켓 발행을 추진할 계획입니다.

  • Spark History Server REST API에서 애플리케이션 이력을 가져오면 별도 화면 파싱 없이 메트릭 수집을 자동화할 수 있습니다.
  • 원본 메트릭 수집과 분석 단계를 분리하면 History Server 호출을 반복하지 않고 분석 로직을 독립적으로 확장할 수 있습니다.
  • 파티션 스큐는 최대 작업 시간과 중앙값의 비율로 보되, 실제 영향이 작은 짧은 작업은 별도 조건으로 제외할 수 있습니다.
  • 작은 파일과 디스크 스필은 평균 파일 크기·파일 수, 스필 용량처럼 구체적인 지표와 임계치를 조합해 감지합니다.

소개

Spark 작업이 효율적으로 실행되는지 모니터링하기 위해서 Spark Analyzer를 만든 경험을 공유하려고 합니다. 저희와 비슷한 고민을 가진 분들께 도움이 되길 바랍니다.

비슷한 학습 자료

문서 박지원

Spark Connect 서버에 세션이 몰리면, 무거운 작업이 다른 사용자까지 느리게 만들고 그 서버가 죽는 순간 모두가 실패합니다. 이 문제들을 어떻게 풀었는지 공유합니다.

데브옵스 · 인프라 클라우드

문서 박종익

토스플레이스 데이터 조직이 '좋은 인사이트'를 '실행'으로 연결한 방법

프로덕트 지표 · 실험

문서 토스 프론트엔드 챕터

프론트엔드 개발자라면 한 번쯤 고민해봤을 성능 최적화! 토스 개발자들이 전하는 최적화의 본질과 실무 노하우를 공개합니다. 초기 로딩부터 런타임 최적화까지, 토스의 박서진, 박건영, 조유성 님이 전하는 최적화 사례와 비법을 만나보세요!

웹 개발 프론트엔드

문서 서소희/문은진

꼭 필요하지만 리소스가 많이 드는 단순 반복 업무, 리서치 프로세스에서 어떻게 개선했는지 소개해 드릴게요.

문서 한지유

토스의 데이터 직군이 매일 쓰는 서비스의 만족도를 1점 끌어올리기 위해 10개월간 집요하게 파고든 과정을 소개할게요.

프로덕트 지표 · 실험

컨퍼런스 당근 밋업

DB 서버의 전문 지식을 가지고 있지 않더라도, 빠르게 DB에서 문제가 되는 쿼리 확인 및 원인 분석할 수 있는 도구를 살펴보고, 요즘 Hot한 Claude MCP를 활용하여 데이터베이스 서버 이슈 진단 방법도 같이 확인 하실 수 있어요. 🥕 개발자를 위한 DB 분석 도구와 방법 (이기현) 👉 당근 채용공고 보기: https://about.daangn.com/jobs/

데이터베이스 AI 코딩