Så mye utslipp skaper koden din: – Mye er rent sløseri

– Tenk litt ekstra på energibruken, og spar litt penger samtidig, oppfordrer Kent Inge Fagerland Simonsen og Sindre Haugland Bøyum.

Sindre Haugland Bøyum og Kent Inge Fagerland Simonsen har sjekka hvor mye utslipp vanlige utvikleraktiviteter skaper. 📸: Privat
Sindre Haugland Bøyum og Kent Inge Fagerland Simonsen har sjekka hvor mye utslipp vanlige utvikleraktiviteter skaper. 📸: Privat Vis mer

Visste du at IKT-næringen står for mer klimagassutslipp enn luftfart?

Dette kan virke nokså kontraintuitivt. Det er tross alt sjelden at man ser eksos komme ut fra laptopen, men IKT bruker mye strøm, og strøm kommer delvis fra brenning av diverse fossile brensler. I tillegg fører det å lage IKT-utstyr til store utslipp.

Selv om det er en del usikkerhet i estimatene så ligger utslippene til IKT rundt det samme som, og i noen estimater høyere enn, luftfart.

I dette innlegget vil vi se igjennom forskjellige “vanlige” IT-tjenester og se på energibruk og klimagassutslippene de rimelig kan sies å forårsake. Vårt håp er at dette kan inspirere noen til å tenke litt ekstra på energibruken fra sine utviklingsaktiviteter og å spare litt penger samtidig som energibruken går litt ned.

I denne artikkelen bruker vi CO₂ ekvivalenter (CO₂e), eller gasser som fører til samme oppvarmingen som den gitte mengden CO₂, som måltall på klimagassutslipp.

Lagring av data

Selv om lagret data tross alt bare ligger i ro et eller annet sted, kan datalagring være overraskende energikrevende. Dette er fordi dataen gjerne ligger på harddisker klar til å bli lest eller endret på et øyeblikks varsel. Og harddisker i idle-status bruker stadig noe strøm.

Ifølge Cloud Carbon Footprint-prosjektet, kan vi anta at en typisk 10TB snurredisk bruker 6,5W som igjen gir ca 0,65W per TB. Hvis vi da antar at vi har lagret 1 petabyte med data i et år i en typisk skytjeneste for datalagring som Azure Storage Account eller AWS S3 og vi antar at vi ikke bruker arkiv-nivåene som gjerne lagres på tape og ikke krever konstant strømtilførsel, så blir den totale strømbruken som følger:

0.65 W/TB * 24h * 365d * 3 * 1.1 = 18 790 Wh/TB year= 18 790 kWh/PB year

Her tar vi effekten som kreves for å lagre 1TB på en snurredisk, ganger med antall timer i året for å få verdien i effekt per år. Så ganger vi med replikasjonsfaktoren 3 (som er ofte brukt for lagringstjeneste i sky[1]). Til slutt multipliserer vi med 1,1 som er en typisk effektivitetsfaktor for store datasentre. Fordi 1 Wh/TB er det samme som 1 kWh/PB kan vi endre litt på enhetene.

Resultatet er at å lagre 1PB i ett år i en typisk skytjeneste vil ha et energiforbruk på 18,8 MWh. Dette tilsvarer strømbruken til en person i en gjennomsnittlig EU-husholdning.

Om vi da antar en karbonintensitet på 238 gram CO₂e/kWh, som tilsvarer et gjennomsnitt i EU, får vi at det totale utslippet for å lagre en petabyte (i EU) blir:

1PB * 18 790 kWh/PB * 238 gCO₂e/kWh = 4.47 tCO₂e

Eller nok til å kjøre nesten 30 000 km med en liten bensindrevet bil som slipper ut 0,15 kg CO₂e per kilometer:

4470 kg CO₂e / 0.15 kg CO₂e/km = 29800 km

«Eller nok til å kjøre nesten 30.000 km med en liten bensindrevet bil.»

Bygge kode

En ting vi gjør mye som utviklere er å bygge, kompilere, linte, teste, analysere, deploye og alt det andre vi kan bruke automatiserte rørledninger til.

Men alt dette styret har også en kostnad. Selv om vi benytter generøse gratiskvoter og prosesseringstid betalt av “noen andre” (takk platform-teamet), så har det en kostnad i energibruk og CO₂e-utslipp.

For å kunne estimere energibruken i en pipeline, som vi for enkelhets skyld antar er en typisk hosted agent i GitHub, er det heldigvis noen i det tyske grønn kode-miljøet som har tatt seg bryet med å måle energibruken i GitHub sine pipelines. Basert på deres tall for de forskjellige CPU-er hos GitHub kan vi regne ut et gjennomsnitt for GitHub Workflows bruk på: 4,7 J/s.

image: Så mye utslipp skaper koden din: – Mye er rent sløseri

Om vi legger til grunn det forbruket, som ikke tar hensyn til ting som nettverkstrafikk, og dermed sannsynligvis er et underestimat, kan vi regne ut en nedre grense for hvor mye energi en pipeline bruker ved å estimere tiden den tar og hvor ofte den kjøres.

image: Så mye utslipp skaper koden din: – Mye er rent sløseri

Som eksempel, et bygg som tar to minutter (120 sekund) og kjøres ca en gang hver arbeidsdag, vil ta noe i nærheten av to kWh med elektrisitet per år, eller ikke særlig mye i det hele tatt. Har vi i stedet et bygg som tar 10 minutt (600 sekund) og kjøres 20 ganger hver arbeidsdag, kan vi estimere at de vil ta noe i størrelsesordenen 200 kWh med strøm.

Om vi antar en CO₂-intensitet på strøm som gjennomsnittet i EU tilsvarer dette rundt 50 kg CO₂ eller å kjøre rundt 350 km i en liten bensinbil.

NB! Husk ved å parallellisere bygget kan man få kortere total byggetid, men vil typisk øke prosesseringstid og dermed energibruken siden flere “maskiner” er aktive samtidig og typisk gjør noen av de samme operasjonene flere ganger (som å sjekke ut en kopi av koden).

Holde en VM kjørende utenom kontortid

Det fine med skytjenester er at de (stort sett) alltid er tilgjengelige og klare til å svare på våre forespørsler, men dette er ikke energi- og karbonmessig gratis.

Sett at vi har en liten virtuell maskin (VM) i en sky så vil den gjøre ting selv når det står ubrukt. Dersom vi antar at operativsystemet og annet i en typisk VM bruker 5% last, kan vi bruke utregningsmetoden i en artikkel fra Microsofts blogg for å estimere hvor mye strøm og energi som går med til å la en VM stå på, men ikke være i bruk utenfor vanlig arbeidstid. Dette er et typisk scenario for VM-er som brukes til test og utvikling i arbeidstiden.

image: Så mye utslipp skaper koden din: – Mye er rent sløseri

Av tabellen over kan vi se at en liten VM i Azure med bare to virtuelle CPU-kjerner som står på, men ikke brukes aktivt kan bruke så mye som 107 kWh i løpet av et år.

Dersom vi antar en typisk CO₂e-intensitet i EU (siden denne hypotetiske VM-en meget mulig kjører i EU) så kan vi si at dette slipper ut opptil 27 kg CO₂e, noe som tilsvarer nesten 180 km i en liten bensinbil.

Dette virker kanskje ikke som en voldsom kostnad, men om vi nå antar at det finnes noen tusen slike VM-er i landets bedrifter som bruker store deler av døgnet og året på å sitte stille, så blir det en del til sammen.

Oppsummering

IKT-industrien bruker veldig mye energi, og står dermed også for store CO₂-utslipp.

I tillegg tyder undersøkelser på at store deler av forbruket av IKT-tjenester er rent sløseri.

Dersom alle oss utviklere og driftere sørger for å redusere den unyttige bruken av IKT ressurser så vil vi både spare penger, bidra til å holde nede strømpriser og redde verden (bittelitt) ved å redusere totale CO₂-utslipp fra energiproduksjon og maskinvareproduksjon.

Referanser