На наших R610 с igb версии 4.1.2 я действительно вижу загрузку модуля 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
Кто-нибудь знает, как сделать так, чтобы ioat использовался для сетевого трафика?
Ядро 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, включая прошивку жесткого диска.
Во-вторых, всегда используйте последнюю версию сетевого драйвера Intel. igb
. Просто скомпилируйте его из исходников.
BIOS включает как DCA, так и IOATDMA. В linux попробуйте это:
# modprobe ioatdma
# dmesg
Вы должны увидеть загруженный драйвер ioatdma.
Сейчас igb
драйвер отличается от ixgbe
что составляет 10 Гбит / с. Поскольку я не использую igb
вообще, я могу посоветовать вам попытаться остановить сеть /etc/init.d/network stop
и rmmod igb
и modprobe igb
еще раз, чтобы узнать, есть ли какие-либо различия, и опубликовать результаты, пожалуйста.