「Worker with pid xxx was terminated due to signal 9」と出たとき


現象、問題

Dockerの上でGunicornを使ったアプリケーションを起動してようとしたが以下のようなエラーが出てアプリケーションが動かない

[2022-03-27 05:58:17 +0000] [18] [WARNING] Worker with pid 224 was terminated due to signal 9

解決方法

Dockerのメモリー割当を増やすことでwarningは出なくなり、アプリケーションも動くようになりました。
他にも、ワーカー数を減らしてみることでメモリー使用量を減らしてアプリケーションを起動することができるかもしれません。

参考

こちらの記事の回答では、MLモデルの読み込みに時間がかかっていたため以下のようにタイムアウト時間を伸ばすことで解決すると書いてあります。メモリーを増やしてみてもダメなときは試してみると良いかもです。

gunicorn main:app --workers 1 --worker-class uvicorn.workers.UvicornWorker --bind 0.0.0.0:8443 --timeout 600