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
デフォルト: 5 Traffic 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
デフォルト: -1 Traffic 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