RSSマルチキュー(受信側のサイズ変更)ベースのアプリケーションを開発し、それをvmwareワークステーションでテストしていますが、vmxnet3ネットワークカードにRSSの問題があることがわかりました。
私のLinux仮想マシンには4つのvCPUがあり、vmxnet3には4つのrxキューがありますが、パケットは常にqueue0に到着し、queue1-queue3は常にアイドル状態です。別のバージョンのLinux /ワークステーションを試してみましたが、同じ結果が得られました。私が試したのは、Wind River Linux 4.3 + workstation 10、centos6 + workstation10、およびceotos7 + workstation11でした。
vmwareワークステーションで複数のキュー(受信機拡張)が機能できますか?
以下は、修正されたvmxnet3ドライバの一部のメッセージです(デバイスを検索するときにrss設定を印刷し、パケットを受信したときにrx descを印刷する)。
vmxnet3 0000:13:00.0 eth2: intr タイプ 3、モード 0、5 のベクトル割り当て
---------- eth2 RSS 設定: hashType=0xf rx_queues=4
vmxnet3 0000:13:00.0 eth2: NICリンク最大10000Mbps
vmxnet3 0000:03:00.0 eth0: intr タイプ 3、モード 0、5 つのベクトル割り当て
---------- eth0 rss 設定: hashType=0xf rx_queues=4
vmxnet3 0000:03:00.0 eth0: NICリンク最大10000Mbps
vmxnet3 0000:0b:00.0 eth1: intr タイプ 3、モード 0、5 のベクトル割り当て
---------- eth1 rss 設定: hashType=0xf rx_queues=4
vmxnet3 0000:0b:00.0 eth1: NICリンク最大10000Mbps
eth0-rxtx-0: rssType=0 rqID=0 rssHash=0x0(0) v4=1 v6=0 tcp=0 udp=1 tuc=1 cnc=0 ipc=1
eth0-rxtx-0: rssType=0 rqID=0 rssHash=0x0(0) v4=1 v6=0 tcp=0 udp=1 tuc=1 cnc=0 ipc=1
...同じメッセージです。 IP アドレスを変更しても、パケットは常に eth0-rxtx-0 に到着します。
ありがとうございます!
答え1
このトピックに関する知識ベースの記事があります。http://kb.vmware.com/kb/2020567(あなたの要求に応じてVMwareによって書かれたようです。)主なものは次のとおりです。
VMXNET3 Linuxデバイスドライバには、RSS(Receive Side Extensions)とマルチキューサポートが含まれています。 VMXNET3デバイスは常に複数のキューをサポートしていましたが、Linuxドライバは以前に1つのRxと1つのTxキューを使用していました。
- VMware Toolsに含まれるVMXNET3ドライバのマルチキューサポートがvSphere 5.0に導入されました。
- Linux オペレーティング・システムに同梱されている VMXNET3 ドライバーでは、Linux カーネル バージョン 2.6.37 以降にマルチキュー・サポートが導入されました。
最新バージョンの VMware Tools では、デフォルトでマルチキューを有効にします。ただし、以前のバージョンでは複数のキューを手動で有効にする必要がありました。これは、modprobeを使用して各アダプタの送信および受信キューの数を設定することによって実行できます。