Performance Evaluation of AF_XDP and DPDK in Multi-Buffer Packet Processing Applications
2024 (English)Independent thesis Advanced level (degree of Master (Two Years)), 20 credits / 30 HE credits
Student thesisAlternative title
Prestandautvärdering av AF_XDP och DPDK i fler-buffert nätverksapplikationer (Swedish)
Abstract [en]
The Internet has shifted towards video-based content, resulting in higher network traffic volumes than ever before. Efficient solutions are crucial to processing this traffic swiftly. Various techniques have been developed to efficiently transport network packets from a network interface to the program processing the packets. The two most prominent tools are the Data Plane Development Kit (DPDK) and the Address Family eXpress Data Path (AF_XDP), each employing different approaches to tackle the issue. DPDK utilizes kernel bypass, detaching the network interface from the operating system (OS) to assume full control over it. On the other hand, AF_XDP employs in-kernel processing, leveraging a specialized data path in the Linux operating system to bypass the entire network stack while keeping the interface accessible within the OS. Both frameworks support the creation of packets from multiple separate memory buffers. DPDK has supported it for a long time, while AF_XDP introduced it just before the start of the theses. DPDK terms this feature “indirect mbufs”, while AF_XDP refers to it as “multi-buffers”. This capability allows advanced packet operations to be executed without data copying, which is essential for specific workloads, as data copying often significantly degrades performance. With both techniques implementing this feature, the question arises: which one offers superior performance? Measuring the performance of high-performance packet processors is challenging. Since the device undergoing testing operates at full load, measurements must be taken on an external node. Similarly, developing highly performance-critical applications is challenging, as a single oversight can severely impact performance. This problem was addressed by creating two applications that tested ten different “elemental” workloads in DPDK and AF_XPD. Subsequently, these applications were tested using the traffic generator TRex, and metrics such as throughput, latency, and packet delay variance (jitter) were recorded. The results indicate that DPDK delivers optimal performance when using a single buffer per packet, whereas AF_XDP outperforms in workloads employing multiple buffers per packet.
Abstract [sv]
Internet har skiftat mot videobaserat innehåll, vilket resulterat i högre nätverkstrafikvolymer än någonsin tidigare. Effektiva lösningar är avgörande för att hantera all denna trafik. Olika tekniker har utvecklats för att effektivt transportera nätverkspaket från ett nätverksgränssnitt till programmet som behandlar paketen. De två mest framträdande verktygen är Data Plane Development Kit (DPDK) och adressfamiljen eXpress Data Path (AF_XDP), som var och en använder olika metoder för att lösa problemet. DPDK använder ”kernel bypass”, som kopplar bort nätverksgränssnittet från operativsystemet (OS) för att ta full kontroll över det. AF_XDP använder istället bearbetning ”in-kernel” och utnyttjar en specialiserad dataväg i operativsystemet Linux för att kringgå hela nätverksstacken samtidigt som gränssnittet är tillgängligt inom operativsystemet. Båda teknikerna stöder skapandet av paket från flera separata minnesbuffertar. DPDK har stött det under lång tid, medan AF_XDP introducerade det precis innan avhandlingarnas början. DPDK kallar den här funktionen för ”indirekta mbufs”, medan AF_XDP hänvisar till den som ”multibuffertar”. Denna funktion tillåter avancerade paketoperationer att utföras utan datakopiering, vilket är nödvändigt för specifika arbetsbelastningar, som datakopiering försämrar ofta prestandan avsevärt. När båda teknikerna implementerar denna funktion uppstår frågan: vilken ger den bäst prestanda? Att mäta prestanda hos högpresterande paketprocessorer är utmanande. Eftersom enheten som testas fungerar med full belastning måste mätningar göras på en extern nod. På samma sätt är det utmanande att utveckla mycket prestandakritiska applikationer, eftersom ett enda misstag kan allvarligt påverka prestandan. Detta problem åtgärdades genom att skapa två applikationer som testade tio olika ”elementära” arbetsbördor i DPDK och AF_XPD. Därefter testades dessa applikationer med trafikgeneratorn TRex, och mätvärden av genomströmning, latens och paketfördröjningsvarians (jitter) registrerades. Resultaten indikerar att DPDK ger optimal prestanda när en enda buffert per paket används, medan AF_XDP överträffar i arbetsbelastningar som använder flera buffertar per paket.
Place, publisher, year, edition, pages
Stockholm: KTH Royal Institute of Technology , 2024. , p. 67
Series
TRITA-EECS-EX ; 2024:597
Keywords [en]
XDP, AF_XDP, DPDK, Networking, Linux, user space, kernel space, zero-copy, socket, multi-buffer
Keywords [sv]
XDP, AF_XDP, DPDK, Nätverk, Linux, användarutrymme, kärnutrymme, noll-kopiering, fler-buffert
National Category
Computer Sciences Computer Engineering
Identifiers
URN: urn:nbn:se:kth:diva-353085OAI: oai:DiVA.org:kth-353085DiVA, id: diva2:1897043
External cooperation
Net Insight AB
Presentation
2024-06-07, via Zoom https://kth-se.zoom.us/j/65155297644, Grimeton, Kistagången 16, 16:00 (English)
Supervisors
Examiners
2024-10-022024-09-112024-10-02Bibliographically approved