Igbバージョン4.1.2を搭載したR610では、ioatdmaモジュールがロードされている(およびlsmodでロードされている)のがわかります。
ioatdma: Intel(R) QuickData Technology Driver 4.00
ioatdma 0000:00:16.0: irq 80 for MSI/MSI-X
ioatdma 0000:00:16.1: irq 81 for MSI/MSI-X
ioatdma 0000:00:16.2: irq 82 for MSI/MSI-X
ioatdma 0000:00:16.3: irq 83 for MSI/MSI-X
ioatdma 0000:00:16.4: irq 84 for MSI/MSI-X
ioatdma 0000:00:16.5: irq 85 for MSI/MSI-X
ioatdma 0000:00:16.6: irq 86 for MSI/MSI-X
ioatdma 0000:00:16.7: irq 87 for MSI/MSI-X
それをサポートするクアッドポートIntel nicがあります。
07:00.0 Ethernet controller: Intel Corporation 82576 Gigabit Network Connection (rev 01)
07:00.1 Ethernet controller: Intel Corporation 82576 Gigabit Network Connection (rev 01)
08:00.0 Ethernet controller: Intel Corporation 82576 Gigabit Network Connection (rev 01)
08:00.1 Ethernet controller: Intel Corporation 82576 Gigabit Network Connection (rev 01)
ただし、ネットワークトラフィックには使用されていないようです。
[root@or-rtlb01 ~]# cat /sys/class/dma/dma*/bytes*
0
0
0
0
0
0
0
0
誰かがそれをネットワークトラフィックに使用するようにそれを作る方法を知っていますか?
カーネルはLinux or-rtlb01.ds.stackexchange.com 3.7.7-1.el6.elrepo.x86_64 #1 SMP Mon Feb 11 22:28:07 EST 2013 x86_64 x86_64 x86_64 GNU/Linux
送信するパケットの大きさはどれくらいですか?デフォルトでは、IOATDMAドライバーは大きなパケットサイズでのみ使用されます。現在の設定は次の方法で表示できます。
cat /proc/sys/net/ipv4/tcp_dma_copybreak
値を小さくしたい場合は、sysctlを使用して設定できます。たとえば、パケットサイズを1に設定するには、次のコマンドを使用します。
sysctl net.ipv4.tcp_dma_copybreak=1
開始する前に、ハードドライブファームウェアを含むBIOSなどの完全なサーバーを更新します。
次に、常に最新のインテルネットワークドライバーigb
を使用します。ソースからコンパイルするだけです。
BIOSはDCAとIOATDMAの両方を有効にします。 Linuxではこれを試してください:
# modprobe ioatdma
# dmesg
ロードされたioatdmaドライバーが表示されます。
現在、igb
ドライバーは、10GBpsのixgbe
とは異なります。私はigb
をまったく使用しないので、ネットワークの停止を試みるように指示できます/etc/init.d/network stop
およびrmmod igb
およびmodprobe igb
再び違いがあるかどうかを確認し、plsできる場合は結果を投稿します。