性能改善のためのApache・WSGIチューニング例(ita-api-organization)¶
概要¶
ita-api-organizationでは、以下の問題に対してApache・WSGI設定を調整することで改善できる場合があります。
大量レコード参照時のタイムアウト: タイムアウト時間を延長
プロセスの長時間稼働によるリソース蓄積: プロセス再起動頻度を調整
チューニング例¶
前提¶
ITAバージョン: 2.8.0
Platformバージョン: 1.12.0
インストール環境: kubernetes
シナリオ¶
問題1: デフォルトのタイムアウト時間では大量レコードの参照処理が完了しない
問題2: プロセスの長時間稼働によるリソース蓄積
大量レコード参照時には処理時間が長くなるため、タイムアウト時間を延長する必要があります。また、Exastroのデフォルト設定では、Apacheプロセスの再起動までの間隔が長く、その間にメモリリークやキャッシュの蓄積が発生する可能性があります。間隔を短く調整することで、プロセスの再起動頻度を高め、より早期にリソースをリセットし、プロセスを健全な状態に保つことを期待します。
設定¶
# exastro.yaml
exastro-it-automation:
# 中略
ita-api-organization:
extraEnv:
PLATFORM_API_HOST: "platform-api"
PLATFORM_API_PORT: "8000"
+ APACHE_TIMEOUT: "600"
+ APACHE_MAX_CONNECTIONS_PER_CHILD: "5000"
+ WSGI_GRACEFUL_TIMEOUT: "600"
image:
repository: "docker.io/exastro/exastro-it-automation-api-organization"
tag: ""
設定パラメータ¶
項目 |
デフォルト値 |
設定値 |
説明 |
|---|---|---|---|
|
300 |
600 |
Apacheのタイムアウト時間(秒)。大量レコード参照時にタイムアウトしないよう延長 |
|
10000 |
5000 |
Apacheの子プロセスが処理するリクエスト数の上限。値を下げることでプロセスの再起動頻度を高め、メモリリークやキャッシュ蓄積を定期的にリセット |
|
300 |
600 |
WSGIワーカーのグレースフルシャットダウンのタイムアウト時間(秒)。APACHE_TIMEOUTと合わせることで、長時間処理中のリクエストを正常に完了させる |
期待される効果¶
タイムアウト回避: 大量レコード参照時にタイムアウトエラーが発生しない
メモリ管理の改善: プロセス再起動頻度を高めることで、メモリリークやキャッシュ蓄積を定期的にリセットし、プロセスを健全な状態に保つ
安定性の向上: リソース蓄積による性能劣化やメモリ不足を防止
実環境での効果は、リクエスト処理のレイテンシやタイムアウトエラーの発生率をご確認ください。