Muistinhallinta DPDK-pohjaisessa sovelluksessa
Saarela, Janne (2021)
Saarela, Janne
2021
All rights reserved. This publication is copyrighted. You may download, display and print it for Your own personal use. Commercial use is prohibited.
Julkaisun pysyvä osoite on
https://urn.fi/URN:NBN:fi:amk-202105158817
https://urn.fi/URN:NBN:fi:amk-202105158817
Tiivistelmä
Opinnäytetyön aiheena oli Data Plane Development Kit (DPDK), joka on verkkopakettien prosessointia nopeuttamaan kehitetty sovelluskehys. Se esiteltiin yleisellä tasolla, kerrottiin sen historiasta ja siitä mitä se sisältää. Työssä kuvailtiin tarvetta pakettiprosessoinnin nopeuttamiseen verkkotoimintojen siirtyessä toimintokohtaisesta laitteistosta yleiskäyttöisille prosessoreille. Lisäksi esiteltiin lyhyesti muitakin pakettiprosessoinnin nopeuttamiseksi kehitettyjä sovelluksia.
Työssä esiteltiin lyhyesti DPDK:ta käyttäviä sovelluksia, kuten Open vSwitch, OpenDataPlane ja MoonGen, sen osoittamiseksi, mitä kaikkea DPDK:ta käyttäen voidaan tehdä. Lisäksi keskityttiin tarkastelemaan DPDK:n tärkeimpiä kirjastoja ja kerrottiin, miten ne hoitavat verkkopaketteja, muistia ja ajastusta. Muistinkäytön osalta kerrottiin ennen muuta muistin sivutuksesta ja DPDK:n muistinkäsittelyn eroista päivitysten 17.11 ja 18.11 välillä. Lisäksi esiteltiin Poll Mode -ajureita, joita käyttäen DPDK kyselee verkkokortille saapuvia paketteja.
Työssä tutkittiin valmista DPDK:n päälle kehitettyä sovellusta ja esiteltiin sen tapaa hoitaa muistin varausta, käyttöä sekä vapautusta. Tämän lisäksi pohdittiin mahdollisia tarpeita ja tapoja muuttaa sovelluksen muistinkäsittely dynaamisemmaksi, sen sijaan että muisti varattaisiin sovelluksen käynnistyksen yhteydessä. Työssä testattiin muistinhallinnan muutoksia valmiissa sovelluksessa ja todettiin, ettei nopeasti tapahtuvalle viestinnälle kannattanut tehdä dynaamista muistinvarausta, mutta kerran tapahtuville varauksille pystyttiin käyttämään DPDK:n muistinvarausfunktioita.
Työssä esiteltiin lyhyesti DPDK:ta käyttäviä sovelluksia, kuten Open vSwitch, OpenDataPlane ja MoonGen, sen osoittamiseksi, mitä kaikkea DPDK:ta käyttäen voidaan tehdä. Lisäksi keskityttiin tarkastelemaan DPDK:n tärkeimpiä kirjastoja ja kerrottiin, miten ne hoitavat verkkopaketteja, muistia ja ajastusta. Muistinkäytön osalta kerrottiin ennen muuta muistin sivutuksesta ja DPDK:n muistinkäsittelyn eroista päivitysten 17.11 ja 18.11 välillä. Lisäksi esiteltiin Poll Mode -ajureita, joita käyttäen DPDK kyselee verkkokortille saapuvia paketteja.
Työssä tutkittiin valmista DPDK:n päälle kehitettyä sovellusta ja esiteltiin sen tapaa hoitaa muistin varausta, käyttöä sekä vapautusta. Tämän lisäksi pohdittiin mahdollisia tarpeita ja tapoja muuttaa sovelluksen muistinkäsittely dynaamisemmaksi, sen sijaan että muisti varattaisiin sovelluksen käynnistyksen yhteydessä. Työssä testattiin muistinhallinnan muutoksia valmiissa sovelluksessa ja todettiin, ettei nopeasti tapahtuvalle viestinnälle kannattanut tehdä dynaamista muistinvarausta, mutta kerran tapahtuville varauksille pystyttiin käyttämään DPDK:n muistinvarausfunktioita.