TimewareTimeware
IT 뉴스 목록으로
IT 뉴스

Drastically Reducing Out-of-Memory Errors in Apache Spark at Pinterest

Felix Loesing | Software Engineer In 2025, we set out to drastically reduce out-of-memory errors (OOMs) and cut resource usage in our Spark ap...

2026년 3월 6일Timeware Engineeringbenchmarkglobal-tech-blogpinterest-engineering
Drastically Reducing Out-of-Memory Errors in Apache Spark at Pinterest

요약

Felix Loesing | Software Engineer In 2025, we set out to drastically reduce out-of-memory errors (OOMs) and cut resource usage in our Spark ap...

Drastically Reducing Out-of-Memory Errors in Apache Spark at Pinterest

원문: Drastically Reducing Out-of-Memory Errors in Apache Spark at Pinterest (Pinterest Engineering, 2026-02-17)

오늘의 결론

내가 오늘 해결하고 싶은 문제는 Apache Spark에서 빈번하게 발생하는 Out-of-Memory(OOM) 오류를 줄이는 방법이다. Pinterest의 Auto Memory Retries 기능은 이전에 실패한 작업을 더 큰 실행기에서 재시도함으로써 이 문제를 효과적으로 해결했다.

이 글이 "기술 향상"이 아닌 이유

내가 본 것: Pinterest의 사례는 단순한 기술적 향상을 넘어, 자원 활용 최적화의 중요성을 강조한다. OOM 오류의 감소는 자원 절약 뿐만 아니라 운영 팀의 부담을 줄이는 데도 기여했다.

  1. 자동 메모리 재시도: Pinterest는 실패한 작업을 자동으로 더 큰 실행기에서 재시도하는 시스템을 도입했다. 이는 관리자 개입 없이도 자원 활용을 최적화할 수 있는 유연성을 제공한다.
  2. 비용 절감: OOM 오류를 줄임으로써, Pinterest는 운영 비용을 상당히 절감할 수 있었다. 이는 대규모 데이터 처리를 하는 기업에 매우 중요한 요소다.
  3. 스케줄링 효율성: 작업이 실패할 때마다 동일한 자원 프로파일을 사용하는 대신, 작업별로 맞춤형 자원 프로파일을 부여하여 스케줄링 효율성을 높였다.

내가 가져갈 실행 포인트 3개

(1) 자동 메모리 조정: 실패한 작업의 재시도

Pinterest는 OOM 오류가 발생한 작업을 더 큰 실행기에서 자동으로 재시도했다. 이 방법은 OOM 오류를 사전에 방지할 수 있는 좋은 접근법이다. 내 경험에서도, 수동으로 메모리 설정을 조정하는 것보다 자동화된 시스템을 통해 작업을 관리하는 것이 더 효율적이었다.

(2) 자원 프로파일링: 작업별 맞춤형 할당

Pinterest는 각 작업에 맞는 자원 프로파일을 부여하여 스케줄링을 최적화했다. 나도 비슷한 방식으로, 특정 작업의 메모리 요구 사항을 분석하고, 그에 맞는 프로파일을 설정하는 것이 필요하다고 느꼈다. 이를 통해 자원 낭비를 줄이고 성능을 개선할 수 있다.

(3) 시스템 모니터링: 성과 측정 및 개선

Pinterest는 도입한 기능의 성과를 모니터링하여 자원 절약과 OOM 오류 감소를 수치적으로 검토했다. 나 역시 운영 중인 시스템의 성과를 지속적으로 모니터링하고, 필요 시 조정을 통해 최적의 상태를 유지해야 한다는 점에서 큰 교훈을 얻었다.

내가 설계할 기준

Auto Memory Retries 기능을 도입하기 좋은 상황

  • 대규모 데이터 처리: 수천 개의 작업을 동시에 처리하는 환경에서 유용하다.
  • 변동성이 큰 작업: 작업의 메모리 사용량이 예측하기 힘든 경우, 유연한 자원 할당이 필요하다.
  • 비용 절감 목표: 자원 관리를 통해 비용을 절감하려는 기업에 적합하다.

이 기술이 맞지 않는 경우

  • 작업 수가 적은 환경: 소규모 시스템에서는 이 기능이 큰 효과를 보지 못할 수 있다.
  • 메모리 요구량이 일정한 작업: 메모리 사용량이 일정한 경우, 추가적인 자동화가 오히려 복잡성을 증가시킬 수 있다.

실패를 줄이는 운영 체크리스트

  • OOM 오류를 방지하기 위해 메모리 할당량을 과도하게 설정하지 말 것.
  • 자원 프로파일을 사전에 충분히 분석하지 않고 설정하지 말 것.
  • 시스템 모니터링 도구를 사용하지 않고 운영하지 말 것.
  • 수동으로 운영을 관리하며 자동화 기능을 무시하지 말 것.
  • 설정 변경 후 성과를 검토하지 않고 방치하지 말 것.

이번 주에 할 1가지

  • 대상: 현재 운영 중인 Spark 작업의 메모리 설정 검토
  • 측정: 각 작업의 메모리 사용량과 OOM 발생 빈도를 기록
  • 성공 기준: OOM 오류가 20% 이상 감소한 것을 확인할 때

마무리

Pinterest의 사례를 통해 배운 핵심 인사이트는 자동화된 시스템이 자원 관리와 최적화를 통해 운영 효율성을 극대화할 수 있다는 것이다. Timeware에서도 이러한 접근법을 통해 고객의 기술적 문제를 해결하고 운영 안정성을 확보하는 데 집중할 것이다.

FAQ

Q. Auto Memory Retries는 어떤 상황에서 가장 효과적인가요? 다양한 메모리 요구 사항을 가진 대규모 작업에서 특히 효과적입니다. 자동으로 메모리를 조정하여 OOM 오류를 방지할 수 있기 때문입니다.

Q. 이 기술을 적용할 때 가장 많이 막히는 부분은 무엇인가요? 작업의 메모리 요구 사항을 정확히 예측하기 어려운 상황에서 적용이 힘들 수 있습니다. 각 작업의 특성을 잘 분석해야 합니다.

Q. Timeware는 이 기술을 어떻게 활용하나요? 우리는 고객의 대규모 데이터 처리 환경에서 OOM 오류를 줄일 수 있는 방안을 모색하고 있으며, 이를 통해 고객의 운영 효율성을 높이고 있습니다.

Q. 이 흐름은 앞으로 어떻게 전개될까요? 자동 메모리 조정 기술은 앞으로 더욱 발전할 것으로 예상됩니다. 이를 통해 기업들은 더욱 효율적이고 경제적인 데이터 처리를 할 수 있을 것입니다.