中央管理配置に関する Cisco ACNS ソフトウェア コンフィギュレーション ガイド Release 5.4
キャッシング パフォーマンスとディ ファレンシエーテッド サービスの管理
キャッシング パフォーマンスとディファレンシエーテッド サービスの管理
発行日;2012/01/08 | ドキュメントご利用ガイド | ダウンロード ; この章pdf , ドキュメント全体pdf (PDF - 9MB) | フィードバック

目次

キャッシング パフォーマンスとディファレンシエーテッド サービスの管理

キャッシュ パフォーマンスを向上させる TCP の設定

TCP メモリ制限

明示的輻輳通知の概要

輻輳ウィンドウの概要

再送信時間係数の概要

TCP スロー スタートの概要

TCP-over-satellite 拡張の概要

IP ディファレンシエーテッド サービスの設定

MTU Discovery ユーティリティのイネーブル化

キャッシング パフォーマンスとディファレンシエーテッド サービスの管理

この章では、パフォーマンスとスループットを向上させることを目的に TCP スタック パラメータを設定する方法、および異なるサービス クラスのコンテンツをマークするために、Type of Service(ToS; サービス タイプ)とDSCP(differentiated services code point)設定を実行する方法について説明します。この章の内容は、次のとおりです。

「キャッシュ パフォーマンスを向上させる TCP の設定」

「IP ディファレンシエーテッド サービスの設定」

「MTU Discovery ユーティリティのイネーブル化」

キャッシュ パフォーマンスを向上させる TCP の設定

Content Engines は一般に、TCP を介した HTTP ストリームのスループットをエンドツーエンドで向上させるために使われますが、コンテンツのキャッシング設定を行う際、パフォーマンスの向上のために TCP のパラメータを調整することは見逃されがちです。クライアントとサーバ間のデータのトランザクションおよびクエリーでは、ウィンドウとバッファのサイズが重要です。そのため、微調整された TCP スタックパラメータはキャッシュ パフォーマンスを最大化する鍵となります。キャッシュ パフォーマンスとスループットの最大化に関連する TCP パラメータには、タイムアウト時間、クライアントとサーバの受信および送信バッファサイズ、そして TCP ウィンドウのスケーリング機能の調整が含まれます。


) TCP パラメータは複雑なため、これらのパラメータの調整時には注意が必要です。ほとんどの環境において、デフォルトの TCP 設定で十分です。TCP 設定の微調整は、TCP 操作に関して十分な経験を持ち、詳細まで完全に理解しているネットワーク管理者が行ってください。


Content Engine の TCP 設定値を設定する手順は、次のとおりです。


ステップ 1 Devices > Devices の順に選択します。Devices ウィンドウが表示され、ACNS ネットワーク内の設定済みデバイスタイプがすべてリスト表示されます。

ステップ 2 TCP 設定を変更する Content Engine の横にある Edit アイコンをクリックします。Device Home for Content Engine ウィンドウが表示されます。

ステップ 3 Contents ペインから、 General Settings > Network > TCP の順に選択します。TCP Settings for Content Engine ウィンドウが表示されます。

TCP パラメータを設定するには、このウィンドウ内で次の 3 つの設定が必要です。

TCP General Settings

TCP Client Settings

TCP Server Settings

図10-1 および 図10-2 を参照してください。 表10-1 で、このウィンドウ内のフィールドについて説明し、対応する CLI グローバル コンフィギュレーション コマンドを示します。

図10-1 TCP Settings ウィンドウ ― 一般設定

 

図10-2 TCP Settings ウィンドウ ― Server および Client 設定

 

ステップ 4 TCP General Settings セクションで、次の手順を実行します。

a. データ転送時の遅延を防ぎパケット損失を軽減するには、 Enable Explicit Congestion Notification チェックボックスにチェックマークを付けます。これによって TCP は RFC 2581 対応となります(明示的輻輳通知の概要を参照)。

b. TCP Type of Service を有効にするには、 Enable Type Of Service チェックボックスにチェックマークを付けます。デフォルトではディセーブルです。

c. Congestion Window Size フィールドで、初期の輻輳ウィンドウ値をセグメント単位で指定します。デフォルトは 2 セグメントです(輻輳ウィンドウの概要を参照)。

d. ReTransmit Time Multiplier フィールドで係数を指定し、再送信タイマーの長さを、TCP アルゴリズムによって決定されるベース値の 1 ~ 3 倍に変更します。デフォルト値は1 で、タイマーは変更されません(再送信時間係数の概要を参照)。


) この係数の変更には注意が必要です。TCP が低速で信頼性の高いネットワーク環境で使われている場合、これによってスループットは改善されます。しかし、信頼性の低いパケット配信環境ではこの係数を変更するべきではありません。


e. Initial Slow Start Threshold フィールドで、スロー スタート用のスレッシュホールドをセグメント単位で指定します。デフォルトは 2 セグメントです(TCP スロー スタートの概要を参照)。

f. Keepalive Probe Count フィールドで、接続の失敗が宣言されるまでに、Content Engine が何回接続をリトライできるかを指定します。デフォルトは 4 回です。

g. Keepalive Probe Interval フィールドで、アイドル状態の接続を Content Engine で維持しておく時間の長さを指定します。デフォルト値は 300 秒です。

h. Keepalive Timeout フィールドで、接続を解除する前に Content Engine で接続を維持しておく時間の長さを指定します。デフォルト値は 90 秒です。

ステップ 5 TCP Client Settings セクションで、次の手順を実行します。

a. クライアントの TCP 適合規格を RFC 1323 規格に設定するには、 Enable Client Satellite チェックボックスにチェックマークを付けます(TCP-over-satellite 拡張の概要を参照)。


) Client Satellite をイネーブルにすると、Server Satellite が自動的にイネーブルになります。また、Server Satellite をイネーブルにすると、Client Satellite が自動的にイネーブルになります。


b. Client Max Segment Size フィールドで、クライアントへ送信する最大パケットサイズを指定します。デフォルトは 1432 バイトです。

c. Client Receive Buffer Size フィールドで、受信 TCP パケット用の TCP 受信バッファサイズを指定します(KB 単位)。デフォルトは 32 KB です。

d. Client Read/Write Timeout フィールドで、ネットワークへの読み取りまたは書き込み処理に対する Content Engine のタイム アウト時間を設定します。デフォルト値は 120 秒です。

e. Client Send Buffer Size フィールドで、発信 TCP パケット用の TCP 送信バッファサイズを指定します(KB 単位)。デフォルトは 32 KB です。

ステップ 6 TCP Server Settings セクションで、次の手順を実行します。

a. サーバの TCP 適合規格を RFC 1323 規格に設定するには、 Enable Server Satellite チェックボックスにチェックマークを付けます(TCP-over-satellite 拡張の概要を参照)。


) Server Satellite をイネーブルにすると、Client Satellite は自動的にイネーブルになります。逆の場合も同じです。


b. Server Max Segment Size フィールドで、サーバへ送信する最大パケットサイズを指定します。デフォルトは 1460 バイトです。

c. Server Receive Buffer Size フィールドで、着信 TCP パケット用の TCP 受信バッファサイズを指定します(KB 単位)。デフォルトは 32 KB です。

d. Server Read/Write Timeout フィールドで、ネットワークへの読み取りまたは書き込み処理に対する Content Engine のタイム アウト時間を設定します。デフォルト値は 120 秒です。

e. Server Send Buffer Size フィールドで、発信 TCP パケット用の TCP 送信バッファサイズを指定します(KB 単位)。デフォルトは 32 KB です。

ステップ 7 この設定値を保存するには、 Submit をクリックします。デフォルトまたはデバイス グループの設定を適用した後に、保存されていない変更内容がある場合、「Click Submit to Save」というメッセージが Current Settings 行の横に赤で表示されます。また、 Reset をクリックすると、以前に設定した設定に戻すこともできます。 Reset ボタンが表示されるのは、デフォルトまたはグループ設定値を適用して現在のデバイス設定値を変更したにもかかわらず、まだその変更を確定していない場合だけです。

変更した設定を保存せずにこのウィンドウを閉じようとすると、変更内容の保存を求める警告ダイアログボックスが表示されます。このダイアログボックスは、Internet Explorer をブラウザとして使用中にのみ表示されます。

 

表10-1 TCP Settings

GUI パラメータ
機能
CLI コマンド

TCP General Settings

Enable Explicit Congestion Notification

遅延を防ぎ、パケット損失を軽減します。

tcp ecn enable

Enable Type Of Service

ToS をイネーブルにします。

tcp type-of-service enable

Congestion Window Size

輻輳ウィンドウのサイズ(セグメント単位)

tcp cwnd-base segments

ReTransmit Time Multiplier

再送信タイマーの長さを変更するための係数

tcp increase-xmit-timer-value value

Initial Slow Start Threshold

スロースタート用のスレッシュホールド(セグメント単位)

tcp init-ss-threshold value

Keepalive Probe Count

接続が失敗したとみなされる前に、Content Engine で接続のリトライができる回数

tcp keepalive-probe-cnt count

Keepalive Probe Interval

Content Engine でアイドル状態の接続を維持しておく時間の長さ

tcp keepalive-probe-interval seconds

Keepalive Timeout

Content Engine が接続解除する前に、接続を維持しておく時間の長さ

tcp keepalive-timeout seconds

TCP Client Settings

Enable Client Satellite

クライアントの TCP 適合規格を RFC 1323 規格に設定します。

tcp client-satellite

Client Max Segment Size

クライアントへ送信する最大パケットサイズ

tcp client-mss max_seg_size

Client Receive Buffer Size

受信 TCP パケット用の TCP 受信バッファの KB 単位のサイズ(1~512)

tcp client-receive-buffer kbytes

Client Read/Write Timeout

ネットワークへの読み取りまたは書き込み処理に対する Content Engine のタイム アウト時間。

tcp client-rw-timeout seconds

Client Send Buffer Size

発信 TCP パケット用の TCP 送信バッファの KB 単位のサイズ(1~512)

tcp client-send-buffer kbytes

TCP Server Settings

Enable Server Satellite

サーバの TCP 適合規格を RFC 1323 規格に設定します。

tcp server-satellite

Server Max Segment Size

サーバへ送信する最大パケットサイズ

tcp server-mss max_seg_size

Server Receive Buffer Size

受信 TCP パケット用の TCP 受信バッファの KB 単位のサイズ(1~512)。

tcp server-receive-buffer kbytes

Server Read/Write Timeout

ネットワークへの読み取りまたは書き込み処理に対する Content Engine のタイム アウト時間

tcp server-rw-timeout seconds

Server Send Buffer

発信 TCP パケット用の TCP 送信バッファの KB 単位のサイズ(1~512)

tcp server-send-buffer kbytes

 


 

TCP メモリ制限

TCP メモリ制限を設定することで、TCP サブシステムのバッファの送受信で使用できるメモリ容量を制御できます。


注意 メモリ制限を理解している場合のみデフォルト値を変更してください。デフォルト値はデバイスによって異なり、さまざまなテストのあとに選択されています。通常、この値を変更することはありません。この値を増加させると、TCP サブシステムはより多くのメモリを使用するため、システムが応答しなくなることがあります。逆にこの値を少なくすると、応答は早くなりますが、パフォーマンスは低下します。

Content Distribution Manager GUI から TCP メモリ制限を設定するには、 Devices > Devices (または Device Groups )> General Settings > Network > TCP の順に選択します。TCP Settings ウィンドウが表示されます(図10-2 を参照)。

表10-2 に、Content Distribution Manager GUI に表示される TCP メモリ制限の設定値と、それに対応する CLI コマンドを示します。

 

表10-2 TCP メモリ制限の設定

Content Distribution Manager GUI のパラメータ
機能
CLI コマンド

TCP Limit Low Water Mark

メモリ抑制モードの下限値(MB)。この制限値未満であれば、TCP は通常のメモリ割り当てモードを開始します。範囲は、4~600 です。

tcp memory-limit low-water-mark megabytes high-water-mark-pressure megabytes high-water-mark-absolute megabytes

TCP Memory Limit High Water Mark-Pressure

通常のメモリ割り当てモードの上限値(MB)。この制限を上回れば、TCP はメモリ抑制モードを開始します。範囲は、5~610 です。

TCP Memory Limit High Water Mark-Absolute

TCP メモリ使用率の絶対制限値(MB)。範囲は、6~620 です。

表10-3 に、各コマンド パラメータのデフォルト値を示します。この値はデバイスのメモリの総量によって異なります。

 

表10-3 デフォルト TCP メモリ制限の設定

システム メモリの総量
抑制
絶対

1 GB、2 GB、4 GB

360 MB

380 MB

400 MB

512 MB

180 MB

190 MB

200 MB

256 MB

25 MB

28 MB

30 MB

これらのデフォルト値を変更する場合、次の条件を満たす必要があります。

低水準のマークは、高水準のマークで設定した抑制値より低くする必要があります。

高水準のマークによる抑制は、高水準のマークで設定した絶対値より低くする必要があります。

low-water-mark < high-water-mark-pressure < high-water-mark-absolute
 

明示的輻輳通知の概要

Explicit Congestion Notification(ECN;明示的輻輳通知)機能により、中間ルータはエンドホストに対してネットワークの輻輳の可能性を通知します。また、この機能は Telnet、Web ブラウジング、音声およびビデオ データの転送など、遅延やパケットの損失に影響されやすいアプリケーションと関連する TCP セッションへのサポートを強化します。ECN にかかわる主な問題は、ECN の動作に対応するために、ルータと TCP ソフトウェア スタックの両方で処理を変更する必要があるということです。

輻輳ウィンドウの概要

輻輳ウィンドウ( cwnd )は、TCP ステート変数の1 つで、TCP 送信の受信側からの確認応答(ACK)を受信する前に、TCP 送信側がネットワークへ送信できるデータ量を制限します。TCP cwnd 変数は、TCP 輻輳回避アルゴリズムによって実装されています。輻輳回避アルゴリズムの目的は、送信レートを継続的に変更することです。これによりデータ フロー全体を通じて、使用可能なネットワークのキャパシティの増加や減少を、送信側が自動的に検知できます。輻輳が発生すると(パケット 損失の発生)、最初に送信レートが下げられ、その後送信側でネットワークのプローブを実行しつつ、徐々にキャパシティを増加させます。

再送信時間係数の概要

TCP 送信側はタイマーを使用して、データ セグメントを送信してから、それに対応する受信側からの ACK を受信するまでの時間を測定します。この再送信タイマーの有効期限が切れた場合には、送信側は(TCP 輻輳制御に関する RFC 標準に従って)送信レートを下げる必要があります。しかし、送信側はネットワークの輻輳を検知して送信レートを下げるわけではないので、ネットワークのその時点での状態に関して有意な予測を立てることはできません。したがって、非常に大量のデータを送信することによるネットワークの輻輳を避けるには、送信側はスロー スタート アルゴリズムを実装し、各送信あたりの送信レートを 1 セグメントに下げます(次の「TCP スロー スタートの概要」の項を参照)。

送信側の再送信タイマーは Content Distribution Manager GUI 内の Retransmit Time Multiplier フィールド、または CLI から tcp increase-xmit-timer-value グローバル コンフィギュレーション コマンドを使用して変更することができます。再送信時間係数を利用して、再送信タイマーの長さを、輻輳制御に使用される TCP アルゴリズムにより決定されるベース値の1 倍から3 倍に変更できます。

再送信タイマーを調整するときは、パフォーマンスと効率へ影響を与えることに注意してください。再送信タイマーへのトリガーが早すぎた場合、送信側は不要な重複データをネットワーク上にプッシュします。また、タイマーへのトリガーが遅すぎた場合は、送信側は必要以上に長い間アイドル状態となり、無意味にデータ フローを低速化させます。

TCP スロー スタートの概要

スロー スタートは TCP によって使用される4 つの輻輳制御アルゴリズムの中の1 つです。ネットワークのキャパシティが不明である場合、スロー スタート アルゴリズムは、TCP セッションの開始時にネットワークへ送り込まれるデータの量を制御します。

たとえば、TCP セッションの開始時にネットワークへ大量のデータが送り込まれた場合、大容量初期データの大部分は失われる可能性が高くなります。これを避けるために、TCP では最初に送信が正常に行われる可能性の高い適度な量のデータを送信します。その後 TCP は、ネットワークをプローブしながら、ネットワークに輻輳の兆候が現れるまで、徐々にデータ量を増やして送信します。

スロー スタート アルゴリズムでは、初めにパケットを輻輳ウィンドウまたは cwnd 変数によって決定されるレートで送信します(「輻輳ウィンドウの概要」 を参照)。このアルゴリズムは、スロー スタート スレッシュホールド(ssthresh)変数によって設定されている上限に到達するまで送信レートを増やしていきます(最初に、ssthresh変数の値は、受信側の最大ウィンドウ サイズ [RMSS] に調整されます。ただし、輻輳が発生すると、ssthresh 変数は、現在の cwnd 変数の値の半分の値に設定され、あとから参照できるようにネットワーク輻輳の発生時点をマーキングします)。

cwnd 変数の開始値は、送信側が送信可能な最大セグメントのサイズ(SMSS;送信側最大セグメントサイズ)の値に設定されます。送信側はシングル データ セグメントを送信します。輻輳ウィンドウは1 つのセグメントのサイズと同じなので、輻輳ウィンドウは満杯になります。その後送信側は、受信側からの対応する ACK を待ちます。ACK を受信すると、送信側は、SMSS 単位で cwnd 変数の値を増やしながら、輻輳ウィンドウ サイズを大きくしていきます。送信側は輻輳ウィンドウが再び満杯になるまで 2 セグメント送信することができるようになり、送信側はこれらのセグメントに対して対応する ACK を待つように、もう一度要求が出されます。スロー スタート アルゴリズムは cwnd 変数の値を増やし続けるので、それにしたがって輻輳ウィンドウのサイズも ACK を受信するごとに1 SMSS ずつ増加します。 cwnd 変数の値が増加した結果 ssthresh 変数の値を超えた場合は、TCP フロー制御アルゴリズムはスロー スタート アルゴリズムから輻輳回避アルゴリズムへと変更されます。

TCP-over-satellite 拡張の概要

Content Engine には TCP-over-satellite 拡張機能が組み込まれていて(RFC 1323 で標準化されています)、衛星タイプ接続のパフォーマンスおよびエンド ツー エンドのスループットを最大化することができます。

ネットワーク インフラに使用できる大量の衛星により、使用できる帯域幅の量が増えました。このような衛星タイプ接続経由でのネットワーク接続の利用は、TCP トランザクションと確認応答の使用に関する新しい課題を生みました。

遅延 ― 地球から 24,000 マイル上空で軌道を描く衛星とのラウンド トリップ タイムは、衛星ポップあたり 550 ミリ秒かかります。バッファ サイズは低スループット接続を防ぐように設定されている必要があります。

ビット エラー ― 通常のネットワーク輻輳によるパケット損失に加えて、地上をベースとしたデバイスと衛星間の接続でのパケット損失が発生する可能性があります。

不均衡な帯域幅 ― 衛星からの送信帯域幅は受信帯域幅より狭くなり、それによってパフォーマンスが影響を受ける場合があります。

TCP Server Settings の下にあるフィールドと TCP Client Settings セクションを使用して、RFC 1323 に準拠するように TCP 接続を設定してください。

IP ディファレンシエーテッド サービスの設定

ACNS ネットワーク内では、CLI または Content Distribution Manager GUI のいずれかを介して、ToS または DSCP 用に Content Engine、Content Router、Content Distribution Manager を設定できます。

ディファレンシエーテッド サービス アーキテクチャは、ネットワークに入ってくるトラフィックが分類され、状況に応じてネットワーク境界で条件付けられるという単純なモデルに基づいています。このあとトラフィックのクラスが、DS(ディファレンシエーテッド サービス)コード ポイントまたはIP ヘッダー内のビット マーキングで識別されます。ネットワークのコア内には、DS コード ポイントに関連付けられているホップごとの動作に従ってパケットが転送されます。

CLI から IP ヘッダーのグローバル ToS 値または DSCP 値を設定するには、 ip dscp グローバル コンフィギュレーション コマンドを使用します。

ip dscp { client { cache-hit { match-server | set-dscp dscp-packets | set-tos tos-packets } | cache-miss { match-server | set-dscp dscp-packets | set-tos tos-packets }} | server { match-client | set-dscp dscp-packets | set-tos tos-packets }}

Content Distribution Manager GUI を使用して ToS 値 および DSCP 値を設定する手順は、次のとおりです。


ステップ 1 Content Distribution Manager GUI から、 Devices > Devices (または Devices > Device Groups )の順に選択します。

ステップ 2 設定するデバイスまたはデバイス グループの横にある Edit アイコンをクリックします。

ステップ 3 Contents ペインから、 General Settings > Network > IP General Settings の順に選択します。IP General Settings ウィンドウが表示されます。

ステップ 4 IP General Settings という項目の下で、 Enable Path MTU Discovery チェックボックスにチェックマークを付けて、MTU Discovery ユーティリティをイネーブルにするように選択します(詳細については、次の「MTU Discovery ユーティリティのイネーブル化」を参照)。

ステップ 5 キャッシュ ヒットの場合に、クライアントへの DSCP 応答または ToS 応答を設定するには、 Set IP DSCP Client Cache-Hit チェックボックスにチェックマークを付けて GUI でオプションをイネーブルにし、IP パケットをマークするために、次の方式のいずれかを選択します。

Match Server

DSCP

ToS

ステップ 6 キャッシュ ミスの場合に、クライアントへの DSCP 応答または ToS 応答を設定するには、 Set IP DSCP Client Cache-Miss チェックボックスにチェックマークを付け、IP パケットをマークするための方式を選択します。

ステップ 7 サーバへの発信要求の DSCP または ToS を設定するには、 Set IP DSCP Server チェックボックスにチェックマークを付け、IP パケットをマークするための方式を選択します。

ステップ 8 この設定値を保存するには、 Submit をクリックします。


 

MTU Discovery ユーティリティのイネーブル化

Cisco ACNS ソフトウェアは、RFC 1191 に規定されている IP Path Maximum Transmission Unit(MTU)Discovery メカニズムをサポートしています。このメカニズムがイネーブルになっていると、Path MTU Discovery ユーティリティは、転送パスの途中の各種リンク間について許容最大 IP パケット サイズを検出し、正しいパケット サイズの値を自動的に設定します。リンクが耐え得る最大の MTU を使用することで、送信デバイスは送信する必要があるパケット数を最小限にできます。

IP Path MTU Discovery が役立つのは、ネットワーク内のリンクがダウンして、MTU サイズが異なる別のリンクを使用することになる場合です。また、接続を最初に確立する際に、送信側には仲介するリンクに関する情報がまったくないときにも、IP Path MTU Discovery が役立ちます。


) IP Path MTU Discovery は、送信側デバイスによって開始されるプロセスです。サーバが IP Path MTU Discovery をサポートしていない場合は、受信側デバイスはサーバによって生成されるデータグラムの断片化を回避するためのメカニズムはありません。


CLI を使用して、Content Engine または Content Router に対してこの自動検出ユーティリティをイネーブルにするには、 ip path-mtu-discovery enable グローバル コンフィギュレーション コマンドを使用します。Content Distribution Manager GUI を使用して、この自動検出ユーティリティをイネーブルにするには、該当デバイスに対して、IP General Settings ウィンドウ内にある Enable Path MTU Discovery チェックボックスにチェックマークを付けます( Devices > Devices > General Settings > Network > IP General Settings )。デフォルトでは、この機能はディセーブルになっています。この機能をディセーブルにすると、送信デバイスでは、576 バイトと次の ホップ MTU のうち小さい方のパケット サイズを使用します。この機能のイネーブル化またはディセーブル化は、既存の接続には影響を与えません。