背景
Web (uWSGI) の同時処理数の既定が小さく、同期的に長時間ブロックする API 呼び出し(処理完了までコネクションを保持する系)が多い環境では、ワーカが埋まり Web 画面全体の応答が低下しうる。並列度・タイムアウトをデプロイ時に調整できるようにする。
対象
kompira サービス (ke2/services/kompira.yml)
uWSGI 並列度系の環境変数を environment: に追加する。既存の UWSGI_BUFFER_SIZE に倣い、「無印共通 + KOMPIRA_ 上書き」の2段形式とする。
UWSGI_PROCESSES
UWSGI_THREADS
UWSGI_LISTEN(listen backlog)
UWSGI_HARAKIRI(リクエストタイムアウト)
UWSGI_THUNDER_LOCK(threads 併用時の accept 公平化)
例: UWSGI_THREADS: ${KOMPIRA_UWSGI_THREADS:-${UWSGI_THREADS:-1}}
nginx (configs/nginx.conf)
現状ハードコードの uwsgi_read_timeout / uwsgi_send_timeout(300)を envsubst 変数化する。NGINX_ENVSUBST_FILTER: ^KOMPIRA のため、変数名は KOMPIRA_ 接頭辞にする。
- 例:
KOMPIRA_NGINX_UWSGI_READ_TIMEOUT / KOMPIRA_NGINX_UWSGI_SEND_TIMEOUT
- 必要に応じて
worker_connections も検討。
その他
- 構成別(single / cluster 等)の推奨設定例、
.env テンプレートへの反映。
- これらの env は、コンテナイメージ側が当該オプションを解釈できることが前提(イメージ側の対応に追従して env 名・既定値を合わせる)。
背景
Web (uWSGI) の同時処理数の既定が小さく、同期的に長時間ブロックする API 呼び出し(処理完了までコネクションを保持する系)が多い環境では、ワーカが埋まり Web 画面全体の応答が低下しうる。並列度・タイムアウトをデプロイ時に調整できるようにする。
対象
kompira サービス (ke2/services/kompira.yml)
uWSGI 並列度系の環境変数を
environment:に追加する。既存のUWSGI_BUFFER_SIZEに倣い、「無印共通 +KOMPIRA_上書き」の2段形式とする。UWSGI_PROCESSESUWSGI_THREADSUWSGI_LISTEN(listen backlog)UWSGI_HARAKIRI(リクエストタイムアウト)UWSGI_THUNDER_LOCK(threads 併用時の accept 公平化)例:
UWSGI_THREADS: ${KOMPIRA_UWSGI_THREADS:-${UWSGI_THREADS:-1}}nginx (configs/nginx.conf)
現状ハードコードの
uwsgi_read_timeout/uwsgi_send_timeout(300)を envsubst 変数化する。NGINX_ENVSUBST_FILTER: ^KOMPIRAのため、変数名はKOMPIRA_接頭辞にする。KOMPIRA_NGINX_UWSGI_READ_TIMEOUT/KOMPIRA_NGINX_UWSGI_SEND_TIMEOUTworker_connectionsも検討。その他
.envテンプレートへの反映。