congestion.config¶
The congestion.config file (by default, located in
/usr/local/etc/trafficserver/) enables you to configure Traffic Server
to stop forwarding HTTP requests to origin servers when they become
congested, and then send the client a message to retry the congested
origin server later. After you modify the congestion.config file,
navigate to the Traffic Server bin directory; then run the
traffic_ctl config reload command to apply changes. When you apply the changes
to a node in a cluster, Traffic Server automatically applies the changes
to all other nodes in the cluster. Traffic Server uses the
congestion.config file only if you enable the
proxy.config.http.congestion_control.enabled option.
congestion.config ファイルにルールを作り次のことを指定できます。
- Traffic Server がどのオリジンサーバーの輻輳を監視するか
- Traffic Server がサーバーが輻輳したかの基準にするタイムアウト
- サーバーが輻輳したときに Traffic Server がクライアントへ送信するページ
- Traffic Server がオリジンサーバーを監視するのは IP アドレスごとか、ホスト名ごとか
フォーマット¶
congestion.config ファイルの各行は以下のフォーマットに従わなくてはなりません。Traffic Server はファイルの先頭から並んでいる順番でルールを適用します。Traffic Server はスペースで区切られた 3 つのタグを認識します。:
primary_destination=value secondary_specifier=value action=value
次の一覧は指定可能な primary destinations とその値です。
dest_domain- リクエストされたドメイン名。
dest_host- リクエストされたホスト名。
dest_ip- リクエストされた IP アドレス。
url_regex- URL 内で見つけられる正規表現 (regex) 。
congestion.config ファイルの secondary specifier は任意です。次の一覧は secondary specifier に指定可能なものとその値です。一つのルールの中で一つ以上の secondary specifier を使用することができますが secondary specifier を連続させることはできません。
port- リクエストされた URL のポートもしくはポートの範囲。
prefix- URL のパス部分のプレフィックス。
次の一覧は指定可能なタグとその値です。
max_connection_failures- デフォルト:
5Traffic Server がオリジンサーバーを輻輳状態とマークするまでに下記で説明される fail window 内で許される最大接続失敗数。 fail_window- デフォルト:
120秒。Traffic Server がオリジンサーバーを輻輳状態とマークするまでに最大数の接続失敗を起こせる期間。 proxy_retry_interval- デフォルト:
10秒。Traffic Server が輻輳したオリジンサーバーに再び接続するまでに待つ秒数。 client_wait_interval- デフォルト:
300秒。輻輳したオリジンサーバーにリトライするまでにクライアントに待たせる秒数。 wait_interval_alpha- デフォルト:
30秒。wait interval にランダムに加算される数の上限。 live_os_conn_timeout- デフォルト:
60秒。生きている (輻輳していない) オリジンサーバーに対しての接続のタイムアウト。クライアントがタイムアウトが発生する前にリクエストを停止した場合、Traffic Server は接続失敗を記録しません。 live_os_conn_retries- デフォルト:
2生きている (輻輳していない) オリジンサーバーに対して許される最大リトライ数。 dead_os_conn_timeout- デフォルト:
15秒。輻輳しているオリジンサーバーに対する接続タイムアウト。 dead_os_conn_retries- デフォルト:
1輻輳しているオリジンサーバーに対して許される最大リトライ数。 max_connection- デフォルト:
-1Traffic Server からオリジンサーバーに対して許される最大接続数 error_page- デフォルト:
"congestion#retryAfter"サーバーが輻輳した際にクライアントに送信されるエラーページ。値はクォーテーションで囲まなければなりません。 congestion_schemeデフォルト:
"per_ip"Traffic Server がルールを per-host ("per_host") や per-IP basis ("per_ip") で適用する場合に指定します。値はクォーテーションで囲まなければなりません。例: サーバー
www.host1.comが二つの IP アドレスを持ち、タグ"per_ip"を使用する場合、各 IP アドレスはそれぞれに接続失敗数を持ち、独立して輻輳状態とマークされます。タグ"per_host"を使用し、サーバーwww.host1.comが輻輳状態とマークされると、両方の IP アドレスが輻輳状態とマークされます。
例¶
次の congestion.config のルールは、指定されたタイムアウトにより www.host.com ポート 80 (HTTP 通信) のサーバーが輻輳したときに、Traffic Server がリクエストの転送を停止するように設定します。タグが一つも指定されていないので Traffic Server はタグのデフォルト値を使用します。
dest_host=www.host.com port=80
一つのルール内に複数のタグを使用できますが、それぞれのタグは一つの値のみを持たなければなりません。ルールにタグを指定しないと Traffic Server はデフォルト値を使用します。
records.config の最後に次のように設定変数を追加することでタグのデフォルト値を上書きできます。
CONFIG proxy.config.http.congestion_control.default.tag INT|STRING value
tag の部分は congestion.config にある一覧で説明されたタグの中の一つで、value は使用したい値です。
例:
CONFIG proxy.config.http.congestion_control.default.congestion_scheme STRING per_host
重要
congestion.config ファイルのルールは records.config ファイルの次の設定を上書きします。
proxy.config.http.connect_attempts_max_retries
proxy.config.http.connect_attempts_max_retries_dead_server
proxy.config.http.connect_attempts_rr_retries
proxy.config.http.connect_attempts_timeout
proxy.config.http.down_server.cache_time
proxy.config.http.down_server.abort_threshold