Python의 GC와 멀티프로세싱 문제: Airflow에서의 메모리 증가와 MySQL 재시작
Python의 GC가 멀티프로세싱과 만나면 생기는 일 - Python과 Airflow, 그리고 관련된 문제 해결기 2편
Airflow 3.1 계열에서 CeleryExecutor를 사용한 PoC 과정 중 worker 프로세스의 메모리 사용량이 증가하는 문제와 MySQL 환경에서 dag-processor가 간헐적으로 재시작되는 현상이 발견되었다. Memray를 통해 확인된 문제는 secrets masker가 불필요한 모듈을 import하고, Task SDK client가 SSL context를 반복 생성하는 누수였다. 이 문제는 Airflow 3.1.2에서 해결되었다.
Memray를 사용하여 메모리 문제를 추적하고 해결한 경험은 Airflow의 성능 최적화에 기여하였다.
원문 출처
네이버 D2