【トラブル】【Airflow】MWAAでエラー「Task exited with return code -9」が表示

◾️はじめに

celery.worker_autoscale ってのを学んだのでメモ

目次

【1】トラブル概要
【2】エラー内容
【3】原因
【4】対処案
【5】補足1:worker_autoscale
【6】補足2:AWS MWAA
 1)celery.worker_autoscale
 2)使用上の注意:デフォルト値
 3)メモリ不足の場合

【1】トラブル概要

MWAAでエラー「Task exited with return code -9」が頻繁に発生する

【2】エラー内容

Task exited with return code -9

【3】原因

* MWAA(Airflow)のメモリ不足

https://cloud.google.com/composer/docs/how-to/using/troubleshooting-dags?hl=ja#task-fails-with-negsignalsigkill

より抜粋
~~~~~~
タスクによっては、Airflow ワーカーに割り当てられているメモリよりも
多くのメモリを使用する場合があります。
このような状況では、Negsignal.SIGKILL によって中断される可能性があります。
...
------
{local_task_job.py:102} INFO - Task exited with return code Negsignal.SIGKIL
------
Negsignal.SIGKILL はコード -9 として表示される場合もあります。

【4】対処案

* celery.worker_autoscale の値をデフォルト値より下げた
 => e.g. mw1.medium: 10,0 -> 5,0

【5】補足1:worker_autoscale

* ワーカーノードのタスク同時実行数(最大と最小)

https://airflow.apache.org/docs/apache-airflow/2.0.2/configurations-ref.html#worker-autoscale

設定例:16,12

* 16:  ワーカーノードのタスク同時実行の最大数
* 12:  ワーカーノードのタスク同時実行の最小数
 => 常に12以上のタスク同時実行数
 => タスク同時実行数16までに抑える

【6】補足2:AWS MWAA

1)celery.worker_autoscale

https://docs.aws.amazon.com/ja_jp/mwaa/latest/userguide/configuring-env-variables.html

より抜粋

* worker_autoscale の Celery Executor を使用するすべてのワーカーで
 同時に実行できるタスクの最大数と最小数。
* 値は次の順序でカンマで区切る必要があります:
 max_concurrency,min_concurrency

2)使用上の注意:デフォルト値

* 環境クラスによってデフォルト値が異なる

https://docs.aws.amazon.com/ja_jp/mwaa/latest/userguide/best-practices-tuning.html

環境クラス Default values
mw1.micro 3,0
mw1.small 5,0
mw1.medium 10,0
mw1.large 20,0
mw1.xlarge 40,0
mw1.2xlarge 80,0

3)メモリ不足の場合

* デフォルト値より小さくすることにより
 タスクあたりの容量を増えるため、改善が見込まれる

参考文献

https://dev.classmethod.jp/articles/amazon-mwaa-config-worker-autoscale/

関連記事

MWAA ~ 入門編 ~
https://dk521123.hatenablog.com/entry/2021/09/29/131101
MWAA に関するトラブルシュート
https://dk521123.hatenablog.com/entry/2021/10/08/145311
MWAA で Secrets Manager の設定追加後にAirflow CLIからエラー
https://dk521123.hatenablog.com/entry/2024/01/18/122436
Apache Airflow ~ 基礎知識編 ~
https://dk521123.hatenablog.com/entry/2021/09/28/135510
Apache Airflow ~ 入門編 ~
https://dk521123.hatenablog.com/entry/2021/07/24/233012
Apache Airflow ~ 基本編 ~
https://dk521123.hatenablog.com/entry/2021/07/28/234319
動的なdbt 実行時でのトラブル
https://dk521123.hatenablog.com/entry/2024/09/10/145921