Containers verbruiken minder energie dan VM’s

Applicatiecontainers zijn populair. Technologieën als Docker en LXC worden op steeds bredere schaal omarmd. Zo toonde onderzoek van Ruxit onlangs nog aan dat 9 op de 10 organisaties overweegt containers te gebruiken. Niet alleen helpen containers applicaties sneller te implementeren, ook blijken zij het energieverbruik van de servers waarop zij draaien te kunnen verminderen. Datacenters die volledig overstappen op containers kunnen hierdoor hun energierekening flink terugdringen.

Dat blijkt uit recent gepubliceerd onderzoek (pdf). Roberto Morabito, een promovendus van de Aalto Universiteit in Espoo (Finland) heeft onderzoek gedaan naar het energieverbruik van containers ten opzichte van traditionele virtuele machines (VM’s). Het onderzoek is onderdeel van het Europese project Metrics, waarin bedrijven en academici factoren onderzoeken die de prestaties van het wereldwijde internet beïnvloeden. Morabito heeft de resultaten van zijn onderzoek gepubliceerd in een onderzoekspaper.

Microsoft

Testsysteem

De promovendus heeft de VM’s en containers op een testsysteem in een cluster draaien dat bestaat uit twee Intel Xeon gebaseerde Dell servers met Ubuntu Linux. Het energieverbruik van het systeem is gemeten met een Power Distribution Unit van Raritan. Op dit systeem heeft Morabito testen uitgevoerd met zowel het open source KVM en Xen hypervisor gebaseerde omgevingen als het open source Docker en het LXC containerplatform. Het onderzoek wijst uit dat het energieverbruik van VM’s en containers nauwelijks verscheelt als beide varianten standby staan. Indien de systemen echter netwerkverkeer verwerken lopen de verschillen al snel op. Zowel Docker als LXC containers blijken in dit geval minder energie te verbruiken.

Om de systemen onder belasting te kunnen testen heeft Morabito 10 Gbps netwerkverkeer naar de VM’s en containers gestuurd met 1.500-byte ethernet frames. In een aparte test is dezelfde hoeveelheid dataverkeer verzonden met 9000-byte ‘jumbo’ frames. Morabito heeft Xen niet kunnen testen met 1.500-byte frames, aangezien het niet mogelijk bleek een 10 Gbps verbinding te creëren met Xen met een standaard netwerkconfiguratie.

8 watt meer

Indien een enkele Docker container 10 Gbps aan netwerkverkeer ontvangt met 1.500 bytes per frame verbruikt de container gemiddeld 176 watt. Het verbruik van een LXC container verschilt met 177 watt nauwelijks. Een KVM verbruikt ongeveer 8 watt meer. Het energieverbruik van Xen kon in deze opstelling dus niet worden gemeten. Indien dezelfde hoeveelheid verkeer met 9000 bytes per frame wordt verzonden zijn de resultaten nagenoeg gelijk. Ook blijkt het energieverbruik van KVM en Xen hierbij nauwelijks te verschillen. Morabito concludeert dan ook dat het verzenden van netwerkverkeer met 1.500 of 9.000 bytes per frame geen invloed heeft op het energieverbruik van KVM, Xen hypervisors, Docker en LXC containers.

Indien containers en VM’s zelf TCP-verkeer versturen met 1.500 byte per frame met een gemiddelde van 9,4 Gbps blijken zowel KVM, LXC als Docker ongeveer evenveel te verbruiken: rond de 160 watt. Xen verbruikt in dit geval echter 10 watt meer. Dit verschil neemt toe indien UDP-verkeer wordt verstuurd. In dit geval verbruikt Xen 22 tot 25 watt meer dan KVM, LXC en Docker.

Acht VM’s of containers

Daarnaast heeft Morabito het energieverbruik in kaart gebracht bij een configuratie waar acht virtuele machines of containers gelijktijdig op een systeem draaien. Indien de containers in deze opstelling 10 Gbps netwerkverkeer met 1.500-byte frames verwerken blijken containers opnieuw minder energie te verbruiken. Xen en KVM verbruiken respectievelijk 199 en 197 watt. Het energieverbruik van Docker is het laagst, op de voet gevolgd door LXC. Het verschil loopt op tot 15 watt. Indien de VM’s en containers in deze opstelling opnieuw zelf 9,4 Gbps aan TCP-verkeer versturen veranderen de resultaten nauwelijks. KVM verbruikt opnieuw minder energie dan Xen, terwijl Docker en LXC nagenoeg dezelfde hoeveelheid energie vragen.

Morabito verklaart de verschillen in energieverbruik door containers en VM’s door het feit dat netwerkpakketten in een hypervisor door meer lagen moeten worden verwerkt dan in een container gebaseerde omgeving. Ook valt op dat Xen consequent meer energie verbruikt dan KVM. Dit kan volgens Morabito worden verklaard door de aanwezigheid van Domain 0. In een Xen hypervisor wordt een pakket bij de verwerking eerst door de fysieke host NIC afgeleverd bij Domain 0. Nadat het pakket hier is verwerkt wordt het pakket doorgestuurd naar het Domain N. Deze extra laag verklaart volgens Morabito het hogere energieverbruik van Xen.

Kleine hoeveelheden

Bij het onderzoek moet overigens wel een kanttekening worden geplaatst. Morabito heeft slechts een kleine hoeveelheid configuraties getest, terwijl in de praktijk veel meer configuraties mogelijk zijn. Zo heeft Morabito het energieverbruik van systemen waarbij containers op VM’s draaien niet getest, terwijl dit een veel voorkomende configuratie is. Het onderzoek kan echter wel als een basis dienen om de impact van containertechnologie op het energieverbruik van servers inzichtelijk te maken.

Een verschil van 8 watt in energieverbruik tussen een container en een VM klinkt wellicht verwaarloosbaar, maar kan in grootschalige omgevingen waar containers op grote schaal worden ingezet een forse impact hebben op het totale energieverbruik van een datacenter. Ondanks de kleine hoeveelheid configuraties biedt het onderzoek dan ook een interessante kijk op de voordelen van containers.

Wouter Hoeffnagel is journalist

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *

Deze website gebruikt Akismet om spam te verminderen. Bekijk hoe je reactie-gegevens worden verwerkt.