この製品のドキュメントセットは、偏向のない言語を使用するように配慮されています。このドキュメントセットでの偏向のない言語とは、年齢、障害、性別、人種的アイデンティティ、民族的アイデンティティ、性的指向、社会経済的地位、およびインターセクショナリティに基づく差別を意味しない言語として定義されています。製品ソフトウェアのユーザインターフェイスにハードコードされている言語、RFP のドキュメントに基づいて使用されている言語、または参照されているサードパーティ製品で使用されている言語によりドキュメントに例外が存在する場合があります。シスコのインクルーシブ ランゲージの取り組みの詳細は、こちらをご覧ください。
シスコは世界中のユーザにそれぞれの言語でサポート コンテンツを提供するために、機械と人による翻訳を組み合わせて、本ドキュメントを翻訳しています。ただし、最高度の機械翻訳であっても、専門家による翻訳のような正確性は確保されません。シスコは、これら翻訳の正確性について法的責任を負いません。原典である英語版(リンクからアクセス可能)もあわせて参照することを推奨します。
このドキュメントには、現在のプラットフォームに基づくバッファ チューニングの概要と、show buffers コマンドに関する一般情報が収録されています。
このドキュメントに関する固有の要件はありません。
このドキュメントの内容は、特定のソフトウェアやハードウェアのバージョンに限定されるものではありません。
このマニュアルの情報は、特定のラボ環境に置かれたデバイスに基づいて作成されました。このドキュメントで使用するすべてのデバイスは、クリアな(デフォルト)設定で作業を開始しています。対象のネットワークが実稼働中である場合には、どのようなコマンドについても、使用前にその潜在的な影響について確実に理解しておく必要があります。
ドキュメント表記の詳細は、『シスコ テクニカル ティップスの表記法』を参照してください。
バッファ チューニングを使用すると、ルータが使用可能なメモリからバッファを割り当てる方法を変更して、トラフィックの一時的なバースト時にパケットがドロップされないようにできます。
使用しているルータのバッファをチューニングする必要があるかどうかを判別するには、show interfaces コマンドと show buffers コマンドを使用します。
ご使用のシスコデバイスの、show interfacesコマンドとshow buffersコマンドの出力、または(イネーブルモードでの)show technical-support(イネーブルモードでの)出力データがあれば、Cisco CLI Analyzerを使用して潜在的な問題と修正を表示できます。Cisco CLI Analyzer を使用するには、登録ユーザとしてログインする必要があり、また、JavaScript を有効にする必要があります。
show interfaces コマンドの出力例を次に示します。
Output queue 0/40, 1041 drops; input queue 0/75, 765 drops 35252345 packets input, 547082589 bytes, 940 no buffer
インプットドロップおよびアウトプットドロップは、トラフィックのバーストによって入出力キューがあふれることが原因です。これはバッファの問題には関係なく、むしろプロセス交換のパフォーマンスの制限に関係します。
「No buffer」は、パケットをコピーする空きバッファがないために廃棄されたパケットの数を示します。
show buffers コマンドを使用して、インターフェイスの Maximum Transmission Unit(MTU; 最大伝送ユニット)に対応するバッファ サイズを確認します。
Middle buffers, 600 bytes (total 150, permanent 25): 147 in free list (10 min, 150 max allowed) 61351931 hits, 137912 misses, 51605 trims, 51730 created 91652 failures (0 no memory)
次の表で出力を説明します。
キーワード | 説明 |
---|---|
total | プール内のバッファ総数(使用済みバッファと未使用バッファの両方を含む)。 |
permanent | プール内に固定で割り当てられるバッファ数。これらのバッファは常にプール内に存在していて、削除することはできません。 |
in free list | プール内で現在利用可能な空きバッファの数。 |
最小 | ルータが「in free list」を保持する必要があるバッファの最小数。 「in free list」のバッファ数が「min」値を下回る場合、ルータはそのプールに対してさらにバッファを作成する必要があります。 |
max allowed | 「in free list」で使用できるバッファの最大数。 「in free list」のバッファ数が「max allowed」値を上回る場合、ルータはプールからバッファを削除する必要があります。 |
hits | 空きリストから正常に割り当てられたバッファの数。 |
misses | バッファが要求されたときに、空きリストに利用可能なバッファがない、または空きリストに 「min」 より少ないバッファしかない回数。 |
trims | 「in free list」のバッファ数が「max allowed」のバッファ数を上回る場合に、プールから削除されたバッファの数。 |
created | 「in free list」のバッファ数が「min」より少ない場合にプールで作成されたバッファの数。 |
no memory | ルータが新しいバッファを作成しようとしたが、ルータ内の空きメモリが十分ではなかったために作成できなかった回数。 |
failures | 割り込み時にリクエスタにバッファを付与できなかった数(ルータはプロセススイッチングレベルで新しいバッファを作成できるため、「no memory」 でない限り 「failure」 は発生しない)。「failures」 の数は、バッファ不足のためにドロップされたパケットの数を示します。 |
ルータによるバッファの処理方法
「in free list」のバッファ数は、使用可能なバッファの数です。バッファ要求が発生すると、「in free list」からバッファが割り当てられます。
IOS バッファは、主に次の 2 つの理由で使用されます。
ルータで終端するトラフィックを処理するため。
パケットがプロセス スイッチングされている場合。
使用可能なバッファがなく、ファースト スイッチングが有効だと、バッファ failure が発生し、パケットがドロップされます。バッファ プール マネージャ プロセスがバッファ failure を検出すると、さらに failure が発生しないように新しいバッファが「作成」されます。
「in free list」の数値が「max allowed」値と同じ場合、ルータは新しいバッファを作成しません。新しいバッファを作成するために十分なメモリがルータにない場合、「no memory」として記録されます。「in free list」の数が「max allowed」の数よりも大きい場合、ルータによって過剰なバッファが一部削除されます。
注意する点は、「failures」と「no memory」の数だけです。failure は発生する可能性がありますが、これはしばらくして安定します。ルータは必要に応じてバッファを作成または削除して、failure の数を安定させます。failure の数が増加し続ける場合は、バッファのチューニングが必要になる可能性があります。
新しいバッファを作成するために十分なメモリがない場合は、バッファリークまたは一般的なメモリ障害がないか確認してください。ファースト スイッチング パスではバッファは作成されないため、ルータがパケットのファースト スイッチングを実行しようとした場合に使用できるバッファがないと、パケットがドロップされ、failure が報告されます。次回、バッファ プール マネジャが実行されたときに新しいバッファが作成されます。
ファーストスイッチ パケットとプロセススイッチパケットは、同じバッファを共有します。これらのバッファは、共有メモリにあります。共有メモリは Cisco 1600 および 2500 シリーズ ルータではダイナミック RAM(DRAM)に、あるいは Cisco 4000、4500、および 4700 シリーズ ルータでは共有 RAM(SRAM)にあります。
show memory コマンドの最初の行から、共有メモリの容量、現在の使用量、および最低ポイントがわかります。パケットをファースト スイッチできない場合、プロセススイッチのインプットキューにパケットへのポインタが挿入されますが、パケット自体はコピーされません。
次に、ローエンド プラットフォーム(Cisco 4500)でのshow bufferss コマンド出力を示します。
router# show buffers Buffer elements: 471 in free list (500 max allowed) 870696495 hits, 0 misses, 0 created Public buffer pools: Small buffers, 104 bytes (total 50, permanent 50): 49 in free list (20 min, 150 max allowed) 27301678 hits, 23 misses, 20 trims, 20 created 0 failures (0 no memory) Middle buffers, 600 bytes (total 150, permanent 25): 147 in free list (10 min, 150 max allowed) 61351931 hits, 137912 misses, 51605 trims, 51730 created 91652 failures (0 no memory) Big buffers, 1524 bytes (total 67, permanent 50): 67 in free list (5 min, 150 max allowed) 46293638 hits, 455 misses, 878 trims, 895 created 0 failures (0 no memory) VeryBig buffers, 4520 bytes (total 96, permanent 10): 79 in free list (0 min, 100 max allowed) 11818351 hits, 246 misses, 98 trims, 184 created 243 failures (0 no memory) Large buffers, 5024 bytes (total 10, permanent 0): 10 in free list (0 min, 10 max allowed) 4504003 hits, 873040 misses, 759543 trims, 759553 created 873040 failures (0 no memory) Huge buffers, 18024 bytes (total 0, permanent 0): 0 in free list (0 min, 4 max allowed) 0 hits, 0 misses, 0 trims, 0 created 0 failures (0 no memory) Interface buffer pools: TokenRing0 buffers, 4516 bytes (total 48, permanent 48): 0 in free list (0 min, 48 max allowed) 3099742 hits, 9180771 fallbacks 16 max cache size, 1 in cache TokenRing1 buffers, 4516 bytes (total 48, permanent 48): 0 in free list (0 min, 48 max allowed) 335172 hits, 403668 fallbacks 16 max cache size, 16 in cache Serial1 buffers, 1524 bytes (total 96, permanent 96): 63 in free list (0 min, 96 max allowed) 33 hits, 0 fallbacks 0 max cache size, 0 in cache Serial2 buffers, 1524 bytes (total 96, permanent 96): 63 in free list (0 min, 96 max allowed) 701370936 hits, 268 fallbacks 0 max cache size, 0 in cache Serial3 buffers, 1524 bytes (total 96, permanent 96): 63 in free list (0 min, 96 max allowed) 33 hits, 0 fallbacks 0 max cache size, 0 in cache Serial0 buffers, 4546 bytes (total 96, permanent 96): 28 in free list (0 min, 96 max allowed) 346854 hits, 5377043 fallbacks 32 max cache size, 27 in cache
インターフェイス バッファ プールは、入出力(I/O)のインターフェイスで使用されます。インターフェイス バッファの空きリストにバッファがそれ以上ない場合、ルータはフォールバックとしてパブリック バッファ プールに移動します。フォールバックによるパフォーマンスへの影響はありません。
キャッシングとは、一部のオーバーヘッドをバイパスすることによって、割り込みレベル ドライバ コードがバッファを速く使用できるようにするソフトウェア操作です。
注:通常、インターフェイスバッファはチューニングしないでください。
ハイエンド プラットフォームでの show buffers コマンドの出力を次に示します。
Router# show buffers Buffer elements: 498 in free list (500 max allowed) 326504974 hits, 0 misses, 0 created Public buffer pools: Small buffers, 104 bytes (total 150, permanent 150): 140 in free list (30 min, 250 max allowed) 564556247 hits, 148477066 misses, 16239797 trims, 16239797 created 29356200 failures (0 no memory) Middle buffers, 600 bytes (total 120, permanent 120): 116 in free list (20 min, 200 max allowed) 319750574 hits, 85689239 misses, 9671164 trims, 9671164 created 26050704 failures (0 no memory) Big buffers, 1524 bytes (total 100, permanent 100): 98 in free list (10 min, 300 max allowed) 20130595 hits, 14796572 misses, 251916 trims, 251916 created 11813639 failures (0 no memory) VeryBig buffers, 4520 bytes (total 15, permanent 15): 14 in free list (5 min, 300 max allowed) 22966334 hits, 3477687 misses, 13113 trims, 13113 created 2840089 failures (0 no memory) Large buffers, 5024 bytes (total 12, permanent 12): 12 in free list (0 min, 30 max allowed) 849034 hits, 1979463 misses, 1028 trims, 1028 created 1979456 failures (0 no memory) Huge buffers, 18024 bytes (total 6, permanent 5): 4 in free list (2 min, 13 max allowed) 338440 hits, 1693496 misses, 1582 trims, 1583 created 1640218 failures (0 no memory)
ヘッダー プール
パブリック バッファ プールは DRAM にあり、システム バッファと呼ばれています。Route/Switch Processor(RSP; ルート/スイッチ プロセッサ)上の共有メモリは、システム パケット メモリ(MEMD)と呼ばれ、2 MB のメモリが使用できます。Route Processor(RP; ルート プロセッサ)と Switch Processor(SP; スイッチ プロセッサ)(または Silicon Switch Processor(SSP; シリコン スイッチ プロセッサ))では、システム バッファは RP 上にあり、MEMD は SP(または SSP)にあります。
パケットが着信すると、そのパケットは受信側インターフェイス プロセッサにより MEMD に保存されます(多用途インターフェイス プロセッサ(VIP)の場合を除きます)。ファースト スイッチできない場合は、パケット全体が DRAM のシステム バッファにコピーされます。したがって、show buffers コマンドで表示されるバッファは、DRAM 内のシステム バッファです。
show controllers cbus コマンドは、MEMD 内のインターフェイス バッファを表示します。インターフェイスバッファをチューニングすることはお勧めしません。パケットをファースト スイッチできず、システム バッファにコピーされる場合、使用できるシステム バッファがなければ、パケットはドロップされ、failure がカウントされます。
Cisco 3600 および 7200 シリーズ ルータは、パーティクルを使用します。インターフェイス バッファは、パケットが分割されるパーティクルと呼ばれるアトミック バッファです。パケットがファースト スイッチできない場合、ルータはシステム バッファの 1 つにそのパケットを再構成する必要があります。これはプロセス交換コードではパーティクルを処理できないためです。
Cisco 3600 での show buffers コマンドの出力を次に示します。
Router# show buffers Buffer elements: 499 in free list (500 max allowed) 136440 hits, 0 misses, 0 created Public buffer pools: Small buffers, 104 bytes (total 50, permanent 50): 49 in free list (20 min, 150 max allowed) 4069435 hits, 141 misses, 73 trims, 73 created 52 failures (0 no memory) Middle buffers, 600 bytes (total 25, permanent 25): 25 in free list (10 min, 150 max allowed) 628629 hits, 21 misses, 21 trims, 21 created 3 failures (0 no memory) Big buffers, 1524 bytes (total 50, permanent 50): 50 in free list (5 min, 150 max allowed) 9145 hits, 0 misses, 0 trims, 0 created 0 failures (0 no memory) VeryBig buffers, 4520 bytes (total 10, permanent 10): 10 in free list (0 min, 100 max allowed) 0 hits, 0 misses, 0 trims, 0 created 0 failures (0 no memory) Large buffers, 5024 bytes (total 0, permanent 0): 0 in free list (0 min, 10 max allowed) 0 hits, 0 misses, 0 trims, 0 created 0 failures (0 no memory) Huge buffers, 18024 bytes (total 0, permanent 0): 0 in free list (0 min, 4 max allowed) 0 hits, 0 misses, 0 trims, 0 created 0 failures (0 no memory) Interface buffer pools: CD2430 I/O buffers, 1524 bytes (total 0, permanent 0): 0 in free list (0 min, 0 max allowed) 0 hits, 0 fallbacks Header pools: Header buffers, 0 bytes (total 265, permanent 256): 9 in free list (10 min, 512 max allowed) 253 hits, 3 misses, 0 trims, 9 created 0 failures (0 no memory) 256 max cache size, 256 in cache Particle Clones: 1024 clones, 0 hits, 0 misses Public particle pools: F/S buffers, 256 bytes (total 384, permanent 384): 128 in free list (128 min, 1024 max allowed) 256 hits, 0 misses, 0 trims, 0 created 0 failures (0 no memory) 256 max cache size, 256 in cache Normal buffers, 1548 bytes (total 512, permanent 512): 356 in free list (128 min, 1024 max allowed) 188 hits, 0 misses, 0 trims, 0 created 0 failures (0 no memory) 128 max cache size, 128 in cache Private particle pools: Ethernet0/0 buffers, 1536 bytes (total 96, permanent 96): 0 in free list (0 min, 96 max allowed) 96 hits, 0 fallbacks 96 max cache size, 64 in cache Serial0/0 buffers, 1548 bytes (total 14, permanent 14): 0 in free list (0 min, 14 max allowed) 14 hits, 0 fallbacks 14 max cache size, 14 in cache BRI0/0 buffers, 1548 bytes (total 14, permanent 14): 0 in free list (0 min, 14 max allowed) 14 hits, 0 fallbacks 14 max cache size, 14 in cache BRI0/0:1 buffers, 1548 bytes (total 14, permanent 14): 0 in free list (0 min, 14 max allowed) 14 hits, 0 fallbacks 14 max cache size, 14 in cache BRI0/0:2 buffers, 1548 bytes (total 14, permanent 14): 0 in free list (0 min, 14 max allowed) 14 hits, 0 fallbacks 14 max cache size, 14 in cache TokenRing0/0 buffers, 1548 bytes (total 64, permanent 64): 0 in free list (0 min, 64 max allowed) 64 hits, 0 fallbacks 64 max cache size, 64 in cache 4 buffer threshold, 0 threshold transitions
専用パーティクル プールはインターフェイスによって使用されるため、チューニングしないでください。空きリストに使用可能なバッファがない場合、ルータはパブリック パーティクル プールを使います。
ヘッダー バッファは、パケットに属するすべてのパーティクルのリストを記録するために使用されます。
注:システムバッファはプロセススイッチングに使用されます。Cisco 3600 では、これらのバッファはすべて、DRAM 内の I/O メモリにあります。I/O メモリの量は、memory-size iomem コマンドを使用して指定できます。Cisco 7200 では、広帯域 Port Adapter(PA; ポート アダプタ)用のインターフェイス パーティクル バッファ プールは、SRAM 内にあります。
show buffers コマンドの例を次に示します。
Middle buffers, 600 bytes (total 150, permanent 25): 147 in free list (10 min, 150 max allowed) 61351931 hits, 137912 misses, 51605 trims, 51730 created 91652 failures (0 no memory)
この例では、ミドルバッファに多数の failure があります。これは重大な問題ではありません。この数値はヒットのわずか 0.1 % に過ぎないからです。これらの数値は、バッファ チューニングによって簡単に改善できます。
バッファ チューニングが行われるのは、パケットの CEF スイッチができない場合のみです。
チューニングするバッファは通常、ルータのアーキテクチャに応じて、I/O メモリ(ローエンド)またはメイン メモリ(ハイエンド)のいずれかに属しています。バッファをチューニングする前に、まず show memory コマンドの最初の行で、I/O メモリまたはメイン メモリに十分な空き容量があるかどうかを確認します。
使用できる一般的な値を次に示します。
permanent:プール内のバッファ総数に、約20 %を追加します。
min-free:プール内でpermanentに割り当てられたバッファ数の約20 ~ 30 %をmin-freeに設定します。
max-free:max-free を固定値 (permanent) と最小値 (min-free) の合計よりも大きい値に設定する。
上記のバッファ チューニングの例では、グローバル コンフィギュレーション モードで次のコマンドを入力できます。
buffers middle permanent 180 buffers middle min-free 50 buffers middle max-free 230
通常、Cisco IOS®ソフトウェアは、バッファを動的に作成して、これらの設定に問題がないようにします。ただし、バーストトラフィックの場合、ルータには新しいバッファを作成するだけの時間がない可能性があるため、failure の数が増加し続けることがあります。デフォルトのバッファ プール設定を変更するには、buffers コマンドを使用します。バッファの設定が不適切な場合、システムのパフォーマンスが影響が出る可能性があるため、バッファ値の変更は慎重に行ってください。バッファ カウンタをクリアする場合は、ルータをリロードする必要があります。
バースト トラフィック には 2 種類あります。
スローバースト:この場合、ルータには新しいバッファを作成するのに十分な時間があります。min-free バッファの数を増やします。空きバッファを使用することにより、min-free の値を確保し、新しいバッファを作成できます。
ファストバースト:ファストトラフィックバーストでは、ルータには新しいバッファを作成するための十分な時間がないため、空きバッファを使用する必要があります。この場合は、固定バッファの数を変更します。
結論:初期チューニング後にcreateカウンタが増加する場合は、min-free(slow burst)を増加させます。failure カウンタが増加して、create カウンタが増加しない場合(ファースト バースト)は、permanent 値を大きくします。
fabric buffer-reserve コマンドを入力することにより、システムのスループットを改善し、ASIC バッファを予約できます。
このコマンドは、次のモジュールでサポートされています。
WS-X6704-10GE
WS-X6748-SFP
WS-X6748-GE-TX
WS-X6724-SFP
このコマンドは、Supervisor Engine 32 が構成されている Cisco 7600 シリーズ ルータではサポートされません。
fabric buffer-reserve [high | low | medium | value]
注意:このコマンドは、Cisco TACの指示がある場合にのみ使用してください。
このコマンドが役立つ一般的な状況を次に示します。
複数のインターフェイスで回線プロトコルがダウンする場合
複数のインターフェイスでオーバーランが発生している場合
ポートで EtherChannel との Join と Leave が頻繁に発生する場合
DFC を備えたラインカードで TestMacNotification テストが繰り返し失敗する場合
show buffers コマンドの出力例を次に示します。
Big buffers, 1524 bytes (total 1556, permanent 50): 52 in free list (5 min, 150 max allowed) 43670437 hits, 5134 misses, 0 trims, 1506 created 756 failures (0 no memory)
この出力は、ビッグ バッファ プールのバッファリークを示します。ルータには合計で 1556 のビッグ バッファがあり、そのうち 52 のみが空きリストにあります。何らかの原因ですべてのバッファが使用され、バッファが解放されていません。バッファリークの詳細は、『トラブルシューティング:バッファリーク』を参照してください。
改定 | 発行日 | コメント |
---|---|---|
1.0 |
14-Dec-2001 |
初版 |