Direct Cache Access (DCA) zur Beschleunigung von 10 GBit Ethernet

Aus Wiki Thomas-Krenn.AG
Wechseln zu: Navigation, Suche

Direct Cache Access (DCA) ermöglicht den schnelleren Datenempfang von Netzwerkdaten. Die Technologie wurde von Intel hauptsächlich zur Beschleunigung von 10 GBit Ethernet entwickelt. Bei DCA werden beim Empfang von Netzwerdaten der Packet Header und Descriptor direkt in den Prozessor Cache geschrieben. Damit sind beide sofort für den Network Stack Process zugänglich. Dies erspart einige CPU-Zyklen, die sonst durch das Einlesen dieser Daten vom RAM entstehen würden.[1]

Inhaltsverzeichnis

DCA im BIOS aktivieren

Das Beispiel zeigt die DCA Option im BIOS eines Server mit Supermicro X7DBE Mainboard:

DCA Option im BIOS eines X7DBE

Beschreibungstext aus einem Mainboard Handbuch von Supermicro:

Direct Cache Access (Available when supported by the CPU.)
Set to Enable to route inbound network IO traffic directly into processor caches
to reduce memory latency and improve network performance. The options are
Disabled and Enabled.

DCA unter Linux

Linux unterstützt DCA ab Kernel Version 2.6.24[2][3].

In /proc/cpuinfo sieht man das Flag sofern die CPU DCA unterstützt (unabhängig davon, ob DCA im BIOS aktiviert ist oder nicht):

testserver:~ # cat /proc/cpuinfo 
[...]
processor       : 7
vendor_id       : GenuineIntel
cpu family      : 6
model           : 23
model name      : Intel(R) Xeon(R) CPU           E5405  @ 2.00GHz
stepping        : 6
cpu MHz         : 2000.066
cache size      : 6144 KB
physical id     : 1
siblings        : 4
core id         : 3
cpu cores       : 4
fpu             : yes
fpu_exception   : yes
cpuid level     : 10
wp              : yes
flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi
mmx fxsr sse sse2 ss ht tm syscall nx lm constant_tsc pni monitor ds_cpl vmx tm2 cx16 xtpr dca lahf_lm
bogomips        : 4000.41
clflush size    : 64
cache_alignment : 64
address sizes   : 38 bits physical, 48 bits virtual
power management:

testserver:~ # 

Beispiele

Diese 10GBit Netzwerkkarte unterstützt z.B. DCA: http://www.supermicro.com/products/accessories/addon/AOC-UTG-I2.cfm

Referenzen

  1. Server Network I/O Acceleration, Fundamental to the Data Center of the Future (Seite 5, Direct Cache Access)
  2. Kernelnewbies: Linux 2.6.24 DCA: Add Direct Cache Access driver
  3. Linux Kernel Mailing List: I/OAT: Add support for DCA - Direct Cache Access

Weitere Informationen


Share/Save/Bookmark  Feedback zu diesem Artikel geben
Meine Werkzeuge
Namensräume
Varianten
Aktionen
Navigation
Kategorien
Drucken/exportieren
Werkzeuge