Czasem trafiamy na informację, od której zatrzymujemy się w miejscu ze stuprocentowym przekonaniem: „chwila, przecież to nie może być prawda, to się nie zepnie na żadnym poziomie”. Taki właśnie moment otrzeźwienia miałem, gdy sprawdziłem na stronie backspace.eco, jak duży miałby być ślad węglowy generowany przez… zaparkowaną domenę.
Wspomniany serwis oferuje pomiar i neutralizację szkód, jakie wyrządza środowisku dwutlenek węgla wytworzony podczas produkcji energii elektrycznej zasilającej hosting strony WWW. Problem był jednak następujący – wrzuciłem do kalkulatora jedną ze swoich nieużywanych domen i dowiedziałem się, że roczna emisja będąca jej udziałem to ponad sto dwadzieścia kilogramów CO2! Alarm w głowie zadzwonił natychmiast – to niemożliwe! A potem siadłem do obliczeń.
Najpierw dygresja – zależy mi na utrzymaniu planety w dobrym stanie dla przyszłych pokoleń. Popieram migrację z energetyki opartej na spalaniu węgla, gazu i ropy do modelu bazującego na energii wiatru i słońca. Staram się zużywać możliwie mało plastiku, po mieście jeżdżę transportem publicznym, w przyszłości mam nadzieję przesiąść się z benzyny na elektryczność produkowaną przez własną fotowoltaikę – i tak dalej.
Jednocześnie głęboko nie zgadzam się ze spotykaną tu i ówdzie postawą, że w imię propagowania pozytywnych postaw można kłamać, naginać rzeczywistość i wyolbrzymiać negatywne konsekwencje wskazanych działań. A taki właśnie występek podejrzewałem w opisywanym przypadku. Czy miałem rację?
128 kg dwutlenku węgla rocznie
Kalkulator na stronie backspace.eco nie pozostawia złudzeń – witryna parking.pusto.online, odwiedzana miesięcznie 50000 razy, przyczyni się do emisji 128 kilogramów CO2. To ponad dziesięć i pół kilo miesięcznie. Zapamiętajmy tę wartość.
Zajrzyjmy tymczasem na rzeczoną witrynę. Zarejestrowałem ją specjalnie na potrzeby tego artykułu, aby mieć pewność, że wyniki nie będą zakłócone jakimikolwiek danymi historycznymi. Widzimy stronę, którą hosting Dreamhost.com wyświetla po „zaparkowaniu” domeny czyli oznaczeniu jej jako tymczasowo nieużywanej.
Narzędzia deweloperskie przeglądarki potwierdzają, że zawartość strony składa się z pięciu plików, z których największym jest GIF z animowanym kotkiem. Łącznie wyświetlenie witryny wiąże się z transferem niespełna ośmiuset kilobajtów.
Samodzielnie szacujemy zużycie prądu
Spróbujmy oszacować, ile prądu zużyje serwer, który prześle 50 tysięcy razy pokazaną przed chwilą stronę z kotkiem. W roli owego serwera wystąpi jednoukładowy komputer Raspberry Pi 4B.
Efektywność komputerów w serwerowniach (oczywiście w przeliczeniu na jednostkę energii) jest wyższa, niż w domu, dzięki efektowi skali – duże transformatory generują mniejsze straty energii, wielordzeniowe i wieloprocesorowe maszyny zamknięte w szafach rackowych są chłodzone z o wiele większą efektywnością, itd. Mamy pewność, że profesjonalny hosting na pewno zużyje do realizacji takiego samego zadania mniej energii, niż Raspberry Pi. Taki zabieg przeprowadzamy świadomie – nasze szacunki będą mocno przestrzelone.
To rzekłszy, przyjrzyjmy się wydajności naszego komputerka. W sieci można znaleźć wiele benchmarków każdego z modeli Raspberry. Dowiadujemy się z nich, że może on realizować ponad 4000 żądań na sekundę – a w przypadku websocketów nawet 100 tysięcy żądań na sekundę. Testy interfejsów sieciowych wykazują, że po kablu prześlemy ponad 40 MB/s (choć to znacząco mniej, niż teoretyczna wydajność gigabitowego ethernetu).
Ile czasu zajmie nam przesłanie 50000 kopii strony z kotkiem?
50000 szt * 0.8 MB / 40 MB/s = 1000 sekund
czyli 16 minut i 40 sekund. Zaokrąglijmy tę wartość do 20 minut.
Raspberry pobiera przy maksymalnym obciążeniu energię 9W (prąd 1.8 A, napięcie 5V). Przez 20 minut zużyje w ten sposób 10.8 kJ (kilodżuli).
Obliczamy emisję CO2
10.8 kJ energii elektrycznej to trzy watogodziny. Ile to będzie emisji dwutlenku węgla?
Spójrzmy na elektrownię Bełchatów. Według Wikipedii roczna produkcja energii to 28 TWh (terawatogodzin) a emisja CO2 – 37,6 milionów ton.
Gdy podzielimy 37.600.000.000.000 gram CO2 przez 28.000.000.000.000 Wh, otrzymamy wynik wynoszący 1.34 grama dwutlenku węgla na jedną watogodzinę. Zweryfikujmy tę informację, zapytajmy WolframAlpha bezpośrednio o przeliczenie watogodzin na CO2:
Tu mamy mniej niż 1 gram dwutlenku węgla na watogodzinę – ale to wartość dostarczenie bliska. Nasze obliczenia mają sens. Dwadzieścia minut pracy Raspberry pod pełnym obciążeniem (3 Wh) to emisja 3-4 gramów dwutlenku węgla.
A miało być 10670 gram! Dwa i pół tysiąca razy więcej? Ktoś nas kantuje na cztery rzędy wielkości?!
Czego nie wzięliśmy pod uwagę?
Wróćmy do backspace.eco, na podstronie „pomoc” znajdujemy założenia przyjęte przez autorów kalkulatora. Jedna watogodzina ma odpowiadać emisji mniej niż połowy grama CO2, pod uwagę jest jednak brana także energia potrzebna do transferu danych przez internet – przyjęta wartość to 0.8 kWh na 1 GB.
50 tysięcy odsłon naszej strony to 40 GB, co przekłada się na 32 kWh. To z kolei – wg autorów strony – ponad 14 kg wyemitowanego CO2. Jak to ma się do wyliczonych poprzednio 10.6 kg? Kalkulator kosztów zakłada, że 25% odsłon to powtórne odwiedziny, w przypadku których część plików będzie już obecna w cache przeglądarki. W takiej sytuacji obliczenia zaczynają się zgadzać.
Czy 0.8 kWh to prawidłowe oszacowanie kosztów transferu jednego gigabajta? Brzmi to dość nieprawdopodobnie. Cena 1 kWh to około złotówki, co oznacza, że pobranie jednej konsolowej gry z dystrybucji cyfrowej (kilkadziesiąt GB) generowałoby koszty wyższe, niż miesięczny abonament za łącze internetowe. Inna sprawa, że to nie końcowy nabywca łącza internetowego ponosi wszystkie koszty globalnej infrastruktury sieciowej. Za przesłanie przez sieć gry mogą płacić firmy Sony lub Microsoft, które potem uwzględnią ten koszt w prowizjach pobieranych od wydawców gier na Playstation lub XBox-a.
Jaki poziom emisji CO2 jest następstwem transferu danych w internecie?
Odpowiedź na powyższe pytanie jest w zasadzie niemożliwa. To bardzo ułatwia funkcjonowanie takim biznesom, jak backspace.eco – mogą obrać dowolny poziom rekompensat środowiskowych i uzasadniać je wybranym oszacowaniem. Spójrzmy na uproszczony schemat internetu:
Pytania zaczynają pojawiać się same:
- czy koszt położenia i eksploatacji kabli podmorskich liczymy dzieląc go przez przepustowość maksymalną czy rzeczywiście wykorzystaną?
- czy do kosztów utrzymania sieci szkieletowej wliczamy tylko eksploatację i amortyzację urządzeń, czy też ślad węglowy ich produkcji i transportu?
- w jaki sposób oszacować koszty składowania danych w serwerowniach, gdy nie znamy tempa wymiany starych napędów na nowe, bardziej efektywne?
- czy powinniśmy różnicować metody dostępu abonenta do internetu (kabel kontra sieć komórkowa), czy raczej prezentować ważony koszt uśrednionego użytkownika?
Podawanie konkretnych liczb jest o tyle trudne, że ogólnoświatowa pajęczyna podlega ciągłej modernizacji – np. w latach 2000-2015 energochłonność transmisji danych spadła 170-krotnie (źródło). To jednak „jedynie” dwa rzędy wielkości, co w żaden sposób nie tłumaczy oszacowań różniących się aż o pięć rzędów wielkości (136 kWh/GB u pesymistów, 0.004 kWh/GB u optymistów). Gdyby taką niepewność przełożyć na ceny sprzętu sieciowego, koszt zakupu wypadałby gdzieś między złotówką a trzydziestoma tysiącami złotych.
Zainteresowanym polecam meta-analizę „Electricity Intensity of Internet Data Transmission: Untangling the Estimates” – ma ona jednak przeszło pięć lat. O czynnikach wpływających na oszacowania przeczytamy w tekście „How many emissions in a gigabyte of data?”.
Sprawdzamy chmury i CDN-y
Cenniki wielkich firm świadczących usługi składowania i dystrybucji danych nie rozjaśniają sytuacji. Składowanie plików w AWS S3 kosztuje dwa i pół amerykańskiego centa za 1 GB miesięcznie. W Cloudflare R2 – półtora centa, w Backblaze B2 – pół centa. Opłata za ruch wychodzący (tzw. egress) to w AWS dziewięć centów za 1 GB, w Backblaze jeden cent, ale stolik przewraca Cloudflare – tu ruch wychodzący jest darmowy!
Jak matematyka wygląda w tym ostatnim przypadku? Witryna z kotkiem zajmuje niespełna megabajt, więc koszt składowania to tysięczna część amerykańskiego centa. Ćwierć miliona żądań (5 plików x 50 tysięcy odsłon) mieści się w dziesięciu gratisowych milionach. Płacimy zero dolarów czyli… mamy zeroemisyjny hosting? Tak dobrze nie jest. Prąd elektryczny nadal będzie zużywany, koszty gratisowych usługi pokrywają po prostu inni, płacący klienci Cloudflare.
Spójrzmy na Backblaze. Przyjmijmy, że firma nie dokłada do kosztów usługi B2 a cena jednego centa za przesłany gigabajt pokrywa rzeczywiste koszty. Przy średniej cenie kilowata wynoszącej w USA 15 centów (marzec 2023), mówimy tu o nakładzie energii nie większym niż 0.067 kWh/GB – a więc emisji około 63 gramów CO2. Przy 40 GB transferowanych z naszej witryny – 2.5 kg dwutlenku węgla. To już naprawdę blisko tych 10 kg, które szokowały nas na początku tekstu.
Podsumowanie
Moja pierwotna intuicja była słuszna – energia potrzebna do obsłużenia 50 tysięcy odsłon strony z kotkiem jest śmiesznie mała. Internet to jednak nie tylko serwery, ale również infrastruktura sieciowa. Oburzenie, z którym siadłem do pisania tekstu („ekokłamstwa! tysiąckrotne zawyżanie oszacowań!”), znacząco ewoluowało podczas zbierania materiałów i samodzielnej weryfikacji oszacowań. Wcześniej nie zdawałem sobie sprawy z tego, że transfer danych w internecie jest tak energochłonny – intuicyjnie oceniałbym raczej, że będzie to koszt porównywalny z samym hostingiem.
Na szczęście dla nas wszystkich – coraz większy procent zużywanej energii elektrycznej pochodzi ze źródeł odnawialnych. Możemy więc mieć nadzieję, że dzisiejsze wskazania kalkulatora ze strony backspace.eco będą z upływem czasu coraz mniej aktualne.
O autorze: zawodowy programista od 2003 roku, pasjonat bezpieczeństwa informatycznego. Rozwijał systemy finansowe dla NBP, tworzył i weryfikował zabezpieczenia bankowych aplikacji mobilnych, brał udział w pracach nad grą Angry Birds i wyszukiwarką internetową Microsoft Bing.
11 odpowiedzi na “Twój hosting nie produkuje stu kilogramów CO2”
O, takiego artykułu mi brakowało po moich ostatnich rozważaniach nt. emisyjności wrzucania w sygnaturę maila obrazka z zielonym listkiem i tekstem „chroń planetę, nie drukuj tego maila” (w dowolnym języku i formie) albo rozsyłania korporacyjnych newsletterów, często też w formie obrazka zamiast zwykłego tekstu. Szkoda, że chyba nikt się nie zajął konkretnymi badaniami. Z drugiej strony, gdyby każdy miał się zamartwiać tym, że jeden śmieszny obrazek z kotem może powodować tyle samo emisji dwutlenku węgla co przejechanie kilkunastu metrów dieslem, internet straciłby znaczną część swojej zawartości.
W obrębie jednej organizacji zużycie zasobów będzie bez porównania mniejsze – zwłaszcza, gdy infrastruktura sieciowa znajduje się w lokalnym biurze.
Ciekawe, ile emisji generuje przesłanie obrazka w mailu kilkaset razy dziennie i jego renderowanie na kliencie poczty.
Kotek nie kotek. Serwery www są co najmniej dwa, każdy z dwoma zasilaczami, switche są co najmniej dwa, urządzenia brzegowe też, stare paliwo do generatorów trzeba zlać co jakiś czas, i tak dalej. Ale też racja, że śmiesznych kotów na tej infrastrukturze są setki tysięcy więc koszty się rozkładają. Może to dokładnie sprawdzić ups na dole szafy, emisję CO2 też policzy. Za blachy w serwerowni ceny rozkładają się mniej więcej tak: prąd, potem dłuuuugo nic, miejsce w szafie, przepustowość łącza, a reszta do drobiazgi.
Może nie potrafię czytać ze zrozumieniem, ale poruszonych jest sporo wątków.
Podsumowując:
1. „Dwadzieścia minut pracy Raspberry pod pełnym obciążeniem (3 Wh) to emisja 3-4 gramów dwutlenku węgla.”
2. „Przy 40 GB transferowanych z naszej witryny – 2.5 kg dwutlenku węgla.”
1+2=2,5 kg (pierwsza liczba nic nie zmienia)
To jest, o ile zrozumiałem roczna wartość emisji.
„To już naprawdę blisko tych 10 kg, które szokowały nas na początku tekstu.”
Przecież to 4x mniej, przy naciąganych założeniach, że koszty transferu w sposób doskonały oddają zużytą energię (a różnice między firmami są znaczne więc można też założyć, że to kwota przyjęta dla wygody rozliczeń a nie realna wartość).
Skłaniałbym się raczej do tego, że wartość emisji pochodzących z transferu nie będzie wyższa niż z emisji pochodzących z procesowania informacji przez Pi. Urządzeń po drodze jest więcej, ale pojawia się efekt skali.
Jeszcze taka obserwacja. Według normy Euro 6 auto emituje ok. 0,5g/km, czyli 10 kg na 20 tys km. Czy to oznacza, że strona z kotkami emituje rocznie więcej CO2 niż średnio jeżdżące auto (średnia 12-15k)? To ile „emituje” ta witryna, tyle co elektrownia Bełchatów?
Moje nastawienie do artykułu, czy też pierwotnej witryny, jest mocno sceptyczne, nie da się ukryć. Ale albo nie rozumiem, ale jest coś nie tak z obliczeniami.
Hej! Te 2.5 kg oraz 10 kg to emisja miesięczna, szacowana różnymi sposobami. Piszę o tym, że to porównywalne wartości, bo moje pierwsze szacunki to było kilka gram kontra 10 kg.
„Skłaniałbym się raczej do tego, że wartość emisji pochodzących z transferu nie będzie wyższa” – uzasadnij, proszę. Z linkowanych przeze mnie źródeł wynika, że jednak będzie.
„Według normy Euro 6 auto emituje ok. 0,5g/km” – tutaj mylisz CO z CO2. Prawie całe paliwo spala się do CO2
ekologiczne auta elektryczne to mit. to jakby używać gamingowy pc zamiast malinki do hostingu.
po pierwsze sam fakt posiadania auta na własność jest dość nieekologiczny. to oczywiście dla wielu będzie komunizm, by auta były głównie szaringowe. ale warto mieć to z tyłu głowy
po drugie angazowanie 1500 kg by przemieścić 100kg ciała (albo wręcz 60kg) to właśnie gaming pc do hostingu zaparkowanej domeny. elektryczne auto to wciąż gamingowy hosting tyle, że w trybie oszczędnym.
„Internet to jednak nie tylko serwery, ale również infrastruktura sieciowa.”
Idąc tym tokiem to nie klikanie w kotka również emituje CO2.
Drogi autorze,
Oczywiście możemy nie klikać w kotki. Możemy również znowu zamiekszać w jaskiniach, tak samo jak możemy nie jeść mięsa którego produkcja podobno zabija planetę.
Finalnie możemy poświęcić się w imię świętego CO2 i strzelić sobie w łeb.
Trzeba produkować jak najwięcej dwutlenku węgla – rośliny potrzebują go do życia.
To może teraz dla odmiany ile CO2 produkowane jest przez wszechobecne reklamy w internecie ?
Reklamy, telemetria, liczenie modeli ML na potrzeby profilowania…