BCM5741x NIC における Geneve トラフィックのパフォーマンス低下
search cancel

BCM5741x NIC における Geneve トラフィックのパフォーマンス低下

book

Article ID: 385414

calendar_today

Updated On:

Products

VMware vSphere ESXi VMware NSX-T Data Center

Issue/Introduction

免責事項:これは英文の記事「The performance drop on BCM5741x NICs with geneve traffic」の日本語訳です。記事はベストエフォートで翻訳を進めているため、ローカライズ化コンテンツは最新情報ではない可能性があります。最新情報は英語版の記事で参照してください。

この記事では BCM5741x, BCM5751x NIC で Geneve トラフィックを使用した場合にパフォーマンスの問題につながる可能性のある NIC の制約があることをユーザーに通知します。

症状:
Geneve トラフィック用に bnxtnet ドライバを搭載した NIC を使用すると、ネットワークパフォーマンスが低下する。また、NIC のプライベート統計で高い "LRO aborts rx" が発生する。
       [rxqN] LRO byte rx: 362072308778
       [rxqN] LRO events rx: 32360186
       [rxqN] LRO aborts rx: 33009523 <-----
NIC のプライベート統計は ESXi のサポートバンドルの内の nicinfo.sh.txt、または次のコマンドで確認することができます:
localcli --plugin-dir /usr/lib/vmware/esxcli/int networkinternal nic privstats get -n <vmnicX>

Cause

LRO (Large Receive Offload) は、複数の受信パケットを結合することでネットワークパフォーマンスを向上させ、ネットワークスタックを通過する際の総オーバーヘッドを削減します。BCM5741x アダプタは、Geneve パケットのハードウェア LRO (Large Receive Offload) の機能をサポートしていません。BCM5750x アダプタは、Geneve パケットヘッダの C ビットが設定されていない場合にのみ、Geneve パケットのハードウェア LRO をサポートします。アダプタはこれらのパケットに対してハードウェア LRO を実行しようとします中断され、その結果、ソフトウェアスタックはより多くのパケットを処理しなければならなくなり、ソフトウェアスタックのオーバーヘッドが高くなるため、パフォーマンスが低下します。

Resolution

現在のところ、解決策はありません。

回避策:
bnxtnet の disable_tpa パラメータを使用してハードウェア LRO を無効化し、ソフトウェア LRO を有効化します。次のコマンドは、4 つの bnxnet NIC ポートでハードウェア LRO を無効にするコマンドです。設定はホストの再起動後に有効になります。
esxcli system module parameters set -m bnxtnet -p 'disable_tpa=1,1,1,1'