IOAT etkin ancak Linux'ta kullanılmıyor mu?


11

İgb 4.1.2 sürümlü R610'larımızda ioatdma modülünün yüklenmesini (ve lsmod yüklü) görüyorum:

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

Desteklememiz gereken dört bağlantı noktalı bir Intel nic var:

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)

Ancak, herhangi bir ağ trafiği için kullanılmıyor gibi görünüyor:

[root@or-rtlb01 ~]# cat /sys/class/dma/dma*/bytes*
0
0
0
0
0
0
0
0

Herkes nasıl bu kadar ioat ağ trafiği için kullanılır biliyor mu?

Çekirdek 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


redhat 6 değil mi?
mdpc

@mdpc: CentOS 6.3, yardımcı olup olmayacağını görmek için çok daha yeni bir çekirdek denedi, ancak olmadı. Bu, ipsec trafiği olan ksoftirqd'de yüksek si% 'si olduğunda keşfedilen ikincil bir sorundu (ipsec trafiğinin kendisinde boşaltma olmasını beklemiyorum, ama hiç ioatdma yok gibi görünüyor.
Kyle Brandt

2
Anakart yonga setinin IOAT desteği var mı? IOAT sistem BIOS'unda açık mı? Dmesg'de "Intel (R) I / OAT DMA Motoru bulundu" mesajını görüyor musunuz? Bu, IOAT'ı destekleyen bir NIC'nin bulunduğunu gösterir. Dmesg'de "BIOS'ta DCA devre dışı bırakıldı" mesajını görüyor musunuz? Bu, DCA için BIOS desteği veya etkinleştirmesi olmadığını gösterir.
suprjami

En son Dell'e sorduğumda (birkaç yıl önce) R610 BIOS'un DCA'yı desteklemediğini veya buna destek ekleme planları olmadığını söylediler.
Craig

2
Doğru, çocuklar dediği gibi "dmesg | grep DCA" neyi gösterir?
Danila Ladner

Yanıtlar:


4

Gönderdiğiniz paketler ne kadar büyük? Varsayılan olarak IOATDMA sürücüsü yalnızca büyük paket boyutlarında kullanılır. Geçerli ayarı şununla görüntüleyebilirsiniz:

cat /proc/sys/net/ipv4/tcp_dma_copybreak

Değerin daha düşük olmasını istiyorsanız, sysctl komutunu kullanarak değeri ayarlayabilirsiniz. Örneğin, paket boyutunu 1 olarak ayarlamak için şunu kullanın:

sysctl net.ipv4.tcp_dma_copybreak=1

2

Başlamadan önce, sabit sürücü ürün yazılımı dahil olmak üzere BIOS gibi tüm sunucuyu güncelleyin.

İkinci olarak, her zaman en son Intel Ağ Sürücüsünü kullanın igb. Sadece kaynaktan derleyin.

BIOS hem DCA'yı hem de IOATDMA'yı etkinleştirir. Linux'ta şunu deneyin:

# modprobe ioatdma

# dmesg

Yüklü ioatdma sürücüsünü görmelisiniz.

Şimdi, igbsürücü ixgbe10GBps olan farklı . Ben kullanımını yok beri igbhiç, ben durdurma ağa denemek için söyleyebilirim /etc/init.d/network stopve rmmod igbve modprobe igbherhangi bir fark ve post sonuçları pls eğer olup olmadığını görmek için tekrar.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.