Spark Tuning: Executor Optimization for Performance

Author: Capital One Tech | Source: Medium (Capital One Tech Blog) | Published: 2026-05-01


한 줄 요약

Spark executor 크기를 fat/thin 극단이 아닌 코어 3~5개 기준으로 최적화하면 병렬성과 장애 허용성의 균형을 맞출 수 있다.

핵심 주장/내용

  • Fat executor(워커당 하나, 최대 리소스): 병렬성과 데이터 로컬리티가 좋지만 장애 허용성이 낮음
  • Thin executor(단일 코어): 장애 허용성은 높지만 네트워크 트래픽이 과다하고 브로드캐스트 변수 중복
  • 최적 사이징 규칙: (1) 워커당 OS용 1코어 + 1GB 예약, (2) 클러스터 수준에서 리소스 매니저용 executor 1개 제거, (3) MAX(384MB, executor 메모리의 10%) 오버헤드 차감, (4) executor당 3~5코어 목표
  • 실전 예시로 구체적인 계산 과정을 제시하여 바로 적용 가능

주요 수치 / 사실

  • 예시 클러스터: 5노드 × 12코어 × 48GB
  • 최적 설정: 10 executors × 5코어 × 21GB
  • 권장 executor 코어 수: 3~5개
  • OS 예약: 워커당 1코어 + 1GB
  • 메모리 오버헤드: MAX(384MB, executor 메모리의 10%)

관련 위키


Source: 원문 보기