enowy
1
안녕하세요. 올해 초까지 2.7.1 을 사용하다가 3.2.1 로 두 달 전에 변경했습니다.
그리고 엊그게 api_server 에서 JWT 토큰을 받지 못하는 현상이 발생되었는데요.
로그나 서버 상태를 보니 몇 가지 상황이 보였습니다.
- api_server 에서 JWT 토큰을 발행하고 약 9분정도 로그 없음. 이때 Task fail 발생.
- dag_processor 의 CPU 사용량이 높음.
- 총 16GB인 메모리에서 14GB 찼다가 12GB 로 떨어지는 현상이 반복됨.
- dag_processor 의 로그를 보면 OOM 이 발생되어 SIGKILL 이 발생됨.
무겁지 않은 작업이라 1대에서 docker 로 구성하여 돌리고 있습니다.
uvicorn 으로 구성되어 있어서 gunicorn 으로 설정을 변경하긴 할텐데
Memory leak 이 어디서 발생한 것인지 잘 모르겠네요.
뭔가 예상되는 것이 있긴한데,
아마도 pathlib의 sys.intern 요걸 사용되신다면 여기서 메모리 누수 문제가 있었습니다.
다행히 다음 버전에서 수정되었어요.
정확하게 체크하고 싶으시다면 memray라는 것이 있는데 요거 사용해보시면 도움이 되실거예요 
enowy
3
네, 감사합니다. memray 도 고민해 봐야 겠네요.
현재는 기본값으로 쓰고 있던 것이 문제가 같아서 몇가지 먼저 적용해 보려 합니다.
- dag-processor 의 parsing 주기 연장
- api-server 의 gunicorn + uvicorn 구성 변경
enowy
4
Airflow는 3.2.2 올리고 몇가지 옵션을 적용한 뒤 Datadog 에서 모니터링 중입니다.
일단 메모리의 지속적인 상승은 멈춘 것 같은데 Worker 컨테이너의 메모리가 조금씩 상승중이네요.
좀 더 모니터링해 봐야 겠습니다.
그런데 글이 너무 안올라오네요.
다행히 판올림 하니까 메모리는 해결되었나보군요!
하지만 뉴컨텐츠 
enowy
6
판올림으로 해결된 것은 아니고 (폐쇄망에서 보이지 않던 Code View 화면의 버그가 해결되긴 했습니다.)
dag_processor 와 api_server 쪽 파라미터를 추가해서 제한을 두었습니다.
그대로 쓸 수는 없고 역시 튜닝이 좀 필요하네요.
아 Code View가 3.2 에서 계속 문제가 있었긴 했는데 이게 영향이 있었나보네요
흠 지금도 Code View에 좀 패치가 덕지덕지 붙어있는터라..ㅠ
여기도 시간나면 깔끔하게 해결할만한 방법을 찾아봐야겠어요.