私は、3 つのワーカー、30 のワーカー接続、eventlet ワーカー クラスを使用して gunicorn をセットアップしました。これは Nginx の背後にセットアップされています。数回のリクエストごとに、ログにこれが表示されます。
[ERROR] gunicorn.error: WORKER TIMEOUT (pid:23475)
None
[INFO] gunicorn.error: Booting worker with pid: 23514
なぜこのようなことが起こるのでしょうか? 何が問題なのかをどうすればわかるのでしょうか?
ベストアンサー1
Django+nginx+gunicorn を使用しても同じ問題が発生しました。Gunicorn のドキュメントに従って graceful-timeout を設定しましたが、ほとんど違いはありませんでした。
いくつかのテストを行った後、解決策を見つけました。設定するパラメータは、タイムアウト(正常なタイムアウトではありません)です。これは時計のように機能します。
だから、こうしてください:
1) gunicorn設定ファイルを開く
2) TIMEOUTを必要な値に設定します。値は秒単位です。
NUM_WORKERS=3
TIMEOUT=120
exec gunicorn ${DJANGO_WSGI_MODULE}:application \
--name $NAME \
--workers $NUM_WORKERS \
--timeout $TIMEOUT \
--log-level=debug \
--bind=127.0.0.1:9000 \
--pid=$PIDFILE