Vis enkel innførsel

dc.contributor.advisorPalma, David
dc.contributor.authorDybvik, Eskil
dc.date.accessioned2023-10-10T17:20:21Z
dc.date.available2023-10-10T17:20:21Z
dc.date.issued2023
dc.identifierno.ntnu:inspera:146715749:35180295
dc.identifier.urihttps://hdl.handle.net/11250/3095604
dc.description.abstractNår vi snakker om tidskritiske nettverksenheter, som for eksempel i smarte strømnett eller fjernstyrte kjøretøy, er det viktig å minimere kilder til forsinkelse og variasjoner i denne. I denne oppgaven har vi sett på hvordan nettverksstakken til Linux blir påvirket når man endrer på diverse parametre og verdier, og hvordan dette påvirker ytelsen til nettverksenheter. Tidligere forskning baserer seg hovedsakelig på sammenlagte verdier, som for eksempel gjennomsnittlig forsinkelse og varians, mens vi i denne oppgaven heller fokuserer på de sjeldnere ekstremverdiene. For å gjøre dette på en systematisk måte, har vi utviklet en testløsning for nettverksenheter, med fokus på tidssensitive applikasjoner. Testløsningen baserer seg på å bruke en modifisert versjon av Cisco TRex til å generere nettverkstrafikk, og et selvlaget program for å tolke dataen som blir generert. Vi definerte et mål vi kaller "anomalies", som vi har definert som "n påfølgende pakker med en forsinkelse som er høyere enn t". Testoppsettet er laget for å være gjenbrukbart og støtte et bredt utvalg av forskjellig maskinvare, og vil derfor kunne brukes i fremtidig forskning. Ved å bruke testløsningen vår, gjorde vi en rekke tester på Linux-kjernens nettverksstakk. Vi eksperimenterte med å variere størrelsen på køene til nettverkskortet, forskjellige mengder nettverkstrafikk, testet med PREEMPT_RT-kjernen, og ved å teste ut en relativt ny patch til kjernen som lar brukeren endre hvordan kjernen håndterer interrupts fra nettverkskortet. Gjennom testingen fant vi ut at det er store variasjoner mellom de ulike kombinasjonene av parametre, som viser at det kan være mye å hente på å optimalisere kjernen for spesifikke applikasjoner. Det var ingen parametre som viste seg å universelt forbedre ytelsen, så det vil være nødvendige å gjøre tester for hver enkelt applikasjon.
dc.description.abstractIn the context of time-sensitive networking, such as smart power grids and remote controlled machinery, it is important to minimize the sources of latency and jitter in the network. In this thesis, we investigate how changing various parameters of the Linux network stack may affect the performance of a network device. Traditionally, related work focus on aggregated values such as average latency and jitter, but we argue that it is important to also look at the extreme outliers in the data. To perform tests systematically, we have developed a benchmarking testbed solution for testing a network device's suitability for real-time applications. The testbed uses a modified version of Cisco TRex to generate traffic, and a custom data processing tool to analyze the results. We define a metric called "anomalies", defined as "n consecutive packets with a latency higher than t". The testbed is designed to be easily reproducible, and to be able to run on a wide range of hardware, making it useful for potential future research. Using the testbed, we have performed a series of experiments to investigate how changing various parameters of the Linux network stack affects the performance of a network device. We tested different queue sizes, different traffic rates, different system loads, tested with the PREEMPT_RT kernel, and with applying a recent patch that changes the way the Linux kernel handles network interrupts. We found that there are combinations of parameters that perform much better than others, but that there is no single configuration that fits all use cases.
dc.languageeng
dc.publisherNTNU
dc.titleOpen source benchmarking of the Linux kernel network stack for real-time applications
dc.typeMaster thesis


Tilhørende fil(er)

Thumbnail

Denne innførselen finnes i følgende samling(er)

Vis enkel innførsel