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

Aus Thomas-Krenn-Wiki
Zur Navigation springen Zur Suche springen

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]

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


Foto Werner Fischer.jpg

Autor: Werner Fischer

Werner Fischer arbeitet im Product Management Team von Thomas-Krenn. Er evaluiert dabei neueste Technologien und teilt sein Wissen in Fachartikeln, bei Konferenzen und im Thomas-Krenn Wiki. Bereits 2005 - ein Jahr nach seinem Abschluss des Studiums zu Computer- und Mediensicherheit an der FH Hagenberg - heuerte er beim bayerischen Server-Hersteller an. Als Öffi-Fan nutzt er gerne Bus & Bahn und genießt seinen morgendlichen Spaziergang ins Büro.


Das könnte Sie auch interessieren

Avago EFI SAS Driver is Unhealthy
BMC System Event Log (SEL) Full bei Intel Server