web-dev-qa-db-ja.com

IOATは有効になっていますが、Linuxでは使用されていませんか?

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

11
Kyle Brandt

送信するパケットの大きさはどれくらいですか?デフォルトでは、IOATDMAドライバーは大きなパケットサイズでのみ使用されます。現在の設定は次の方法で表示できます。

cat /proc/sys/net/ipv4/tcp_dma_copybreak

値を小さくしたい場合は、sysctlを使用して設定できます。たとえば、パケットサイズを1に設定するには、次のコマンドを使用します。

sysctl net.ipv4.tcp_dma_copybreak=1
4
Boscoe

開始する前に、ハードドライブファームウェアを含むBIOSなどの完全なサーバーを更新します。

次に、常に最新のインテルネットワークドライバーigbを使用します。ソースからコンパイルするだけです。

BIOSはDCAとIOATDMAの両方を有効にします。 Linuxではこれを試してください:

# modprobe ioatdma

# dmesg

ロードされたioatdmaドライバーが表示されます。

現在、igbドライバーは、10GBpsのixgbeとは異なります。私はigbをまったく使用しないので、ネットワークの停止を試みるように指示できます/etc/init.d/network stopおよびrmmod igbおよびmodprobe igb再び違いがあるかどうかを確認し、plsできる場合は結果を投稿します。

2
Andrew Smith