Cisco Japan Blog
Share

ハードウェアベースのマイクロバースト検出によるナノ秒単位でのバッファの可視性


2021年8月13日


この記事は、DC Switching Marketing の Distinguished Technical Marketing Engineer である Tim Stevenson によるブログ「Nanosecond Buffer Visibility with Hardware-Based Microburst Detectionpopup_icon」(2021/7/15)の抄訳です。

 

マイクロバーストとは何か、なぜ重要なのか

スイッチインターフェイスの平均使用率がワイヤレートを大幅に下回っているにもかかわらず、出力廃棄が増加しているのを疑問に思ったことはありませんか。その場合、インターフェイスでマイクロバーストが発生している可能性が高いでしょう。複数の入力インターフェイスが単一の出力インターフェイス宛てのトラフィックを同時に受信する場合(いわゆる「インキャスト」トラフィックパターン)、瞬間的な受信レートは低く、出力インターフェイスが負荷を処理できるため、ほとんど問題は発生しません。

この状況を「マイクロバースト」と言います。このとき、しばらくの間はインターフェイスの総受信レートが出力インターフェイスのワイヤレートを超えます。この場合、過剰なトラフィックをバッファする必要があります。こうしたトラフィックが大量に同時に到着すると、出力インターフェイスのバッファがいっぱいになってオーバーフローし、廃棄されることがあります。図 1 は、マイクロバーストの概念を説明しています。

図 1:マイクロバーストの概念

図 1:マイクロバーストの概念

図 1 の例では、3 つのインターフェイスが一連のバックツーバックパケットを最小限のパケット間ギャップ(IPG)で同時に受信しています。宛先はこれらのパケットを送信する必要がありますが、出力インターフェイスの最大レートでしか送信できません。この場合、4 つのインターフェイスはすべて同じ速度であるため、送信インターフェイスによって過剰なトラフィックがバッファされます。バーストが短時間であれば、送信インターフェイスが最終的にバッファを空にするので、わずかな遅延が発生するだけです。ただし、トラフィックバーストが長時間続くと、バッファがオーバーフローして出力が廃棄されることがあります。たとえば、TCP のウィンドウ同期を回避しながら輻輳の発生を防ぐためにランダムにフレームをドロップする場合など、パケットドロップが発生しても問題がなく、生産的な場合もあります。一方、パケットドロップはアプリケーションのパフォーマンスに悪影響を与えることもあり、当然ですが、ネットワーク運用スタッフにとっては懸念事項となります。

出力インターフェイスの廃棄が増加している場合、マイクロバーストが実際に発生していることをどうやって確認すればよいのでしょうか。また、マイクロバーストの発生頻度と期間はどの程度でしょうか。輻輳はたまにしか発生しないのでしょうか。それとも特定のインターフェイスが常に輻輳していて、ワークロードの再配分や設定変更などを行う必要があるのでしょうか。インターフェイスカウンタをモニタリングするといった従来の方法では、必要な可視性が得られません。このようなカウンタは通常、比較的長い間隔(多くの場合 10 秒以上)でソフトウェアによって読み取られるため、バースト性の高いトラフィックのパターンを「平準化する」傾向があります。そこで、Cisco Nexus 9000 シリーズ データセンター スイッチの登場となります。

ハードウェアベースのマイクロバースト検出とその仕組み

Cisco Nexus 9000 シリーズ データセンター スイッチには、固定フォームファクタの Nexus 9300-EX/FX/FX2/FX3/GX(および 9364C、9332C)とモジュラ型 Nexus 9500-EX/FX/GX プラットフォームの 2 種類があり、マイクロバーストの検出と測定を容易にする高度なハードウェア機能が提供されます。これらのスイッチは、クラウドスケール ASIC ファミリと呼ばれるシスコのカスタムシリコンをベースにしており、ユニキャストトラフィックとマルチキャストトラフィックの両方について、識別が困難なトラフィックのマイクロバーストを、インターフェイス単位、キュー単位できめ細かくモニタできます。

各キューには、トリガーベースのマイクロバースト測定機能が備わっています。モニタ対象のキューのバッファ使用率が設定可能な「上昇」しきい値を超えると、ナノ秒単位の粒度のタイムスタンプを使用して、しきい値に達した瞬間がシリコンによりキャプチャされます。バッファがいっぱいになると、そのキューの「ピーク」深度が別のタイムスタンプとともに記録されます。そして最後に、キューがドレインされ、「下降」しきい値を下回ると、3 番目の最終タイムスタンプが記録されます。結果は、図 2 の出力のような一連の未加工のレコードになります。

図 2:マイクロバーストの未加工のレコード(NX-OS)

図 2:マイクロバーストの未加工のレコード(NX-OS)

マイクロバーストデータを使用した分析

このように、マイクロバーストがいつ、どのくらいの頻度で発生していて、どの程度深刻なのかを検出できます。では、そのデータを使用して何ができるのでしょうか。もちろん、「show queuing burst-detect」コマンドを使用すれば、NX-OS ソフトウェアを実行しているスイッチでバーストデータをいつでも直接モニタできます。最も基本的なオプションであり、特定の状況(インターフェイスやキューのアクティビティをさっとスポットチェックするときなど)ではこれで十分ですが、ほとんどの場合、他のシステムで使用、分析するためにスイッチからデータを取得する必要があります。

NX-OS ソフトウェアの強力なストリーミングテレメトリ機能により、マイクロバーストデータがスイッチング インフラストラクチャから他のシステムに取り込まれ、詳細な分析、トレンド分析、相関付け、可視化を行うための優れたオプションが提供されます。NX-OS ソフトウェアは、さまざまなトランスポートのオプションで JSON や Google Protocol Buffer(GPB)のエンコーディングを使用して、テレメトリデータをストリーミングします。これにより、シスコやサードパーティが提供するプラットフォーム、あるいは IT 部門が直接開発したプラットフォームにスイッチング インフラストラクチャによって生成されたデータを簡単に取り込んで分析することができます。

Cisco Nexus Dashboard Insights アプリケーションでは、NX-OS ベースおよび ACI ベースのスイッチファブリックのマイクロバーストデータの設定、使用、分析を簡単に行うことができ、ネットワーク全体の過剰なマイクロバースト アクティビティがネットワーク運用者に迅速に警告されます。図 3 は、特定のインターフェイスで短時間に複数のマイクロバーストイベントが発生した場合に、Nexus Dashboard Insights によって生成されるマイクロバースト関連の異常を示しています。

マイクロバースト関連の異常を示しています

図 3:Nexus Dashboard Insights によって生成されるマイクロバーストの異常

図 3:Nexus Dashboard Insights によって生成されるマイクロバーストの異常

図 3 に示すように、Nexus Dashboard Insights は、デバイス、インターフェイス、マイクロバーストが発生しているキューを特定するだけではなく、これらのバーストイベントを、測定された中で最大バースト値が最も大きいフローに基づいて、バーストの原因になっている可能性があるインターフェイスを通過するモニタ対象のフローと関連付けます。このような詳細な情報により、ネットワークの動作をかつてないレベルで可視化できるため、ネットワーク運用者はネットワーク全体の輻輳のホットスポットを迅速に特定して修復
できます。

重要なポイント

Cisco Nexus 9000 シリーズ スイッチの高度なハードウェア機能、NX-OS により提供される標準ベースのストリーミングテレメトリ、Nexus Dashboard Insights アプリケーションによって提供される最先端のマイクロサービスベースの Day 2 運用機能の統合により、個別の製品を超える相乗効果が得られます。これらのテクノロジーを組み合わせることで、重大な問題になる前にネットワークの輻輳を特定するプロセスが大幅に簡素化され、ネットワーク運用チームの生産性と効率性がかつてないほど向上します。

 

リソース:

 

Tags:
コメントを書く