Solcellsdriven hemwebbserver fungerade i 15 månader: drifttid 95,26 %

Solcellsdriven hemwebbserver fungerade i 15 månader: drifttid 95,26 %
Den första prototypen av en solserver med laddningsregulator. Foto: solar.lowtechmagazine.com

I september 2018, en entusiast från Low-tech Magazine lanserade ett "lågteknologiskt" webbserverprojekt. Målet var att minska energiförbrukningen så mycket att en solpanel skulle räcka för en hemserver som är självvärd. Detta är inte lätt, eftersom sajten måste fungera 24 timmar om dygnet. Låt oss se vad som hände till slut.

Du kan gå till servern solar.lowtechmagazine.com, kontrollera aktuell strömförbrukning och batteriladdningsnivå. Webbplatsen är optimerad för ett minimalt antal förfrågningar från sidan och minimal trafik, så den bör tåla en ökning av trafiken från Habr. Enligt utvecklarens beräkningar är energiförbrukningen per unik besökare 0,021 Wh.

Strax före gryningen den 31 januari 2020 hade den 42 % batteri kvar. Gryning i Barcelona klockan 8:04 lokal tid, varefter ström ska gå från solpanelen.

Solcellsdriven hemwebbserver fungerade i 15 månader: drifttid 95,26 %

Varför?

För tio år sedan experter förutspåttatt utvecklingen av internet bidrar till samhällets ”dematerialisering”, universell digitalisering – och som ett resultat en minskning av den totala energiförbrukningen. De hade fel. I själva verket krävde Internet självt enorma mängder energiförsörjning, och dessa volymer fortsätter att växa.

IT-företag har lanserat initiativ för att byta till alternativa kraftkällor, men det är nu omöjligt. Alla datacenter förbrukar tre gånger mer energi än vad alla sol- och vindanläggningar i världen genererar. Ännu värre, produktion och regelbundet byte av solpaneler och vindkraftverk kräver också energi, därför är det helt enkelt omöjligt idag att överge fossila bränslen (olja, gas, uran). Men dessa reserver kommer inte att räcka länge, så vi kommer oundvikligen att behöva tänka på hur vi ska leva på förnybara källor. Inklusive drift av datorinfrastruktur, inklusive webbservrar.

Lågteknologisk tidning anser att det är ett problem Webbsidor sväller för snabbt. Den genomsnittliga sidstorleken ökade från 2010 till 2018 från 0,45 MB till 1,7 MB, och för mobilwebbplatser - från 0,15 MB till 1,6 MB, en försiktig uppskattning.

Ökad trafikvolym överträffar framstegen inom energieffektivitet (energin som krävs för att överföra 1 megabyte information), vilket orsakar en konstant ökning av internetenergiförbrukningen. Tyngre och mer belastade sajter ökar inte bara belastningen på nätverksinfrastrukturen, utan förkortar också "livscykeln" för datorer och smartphones, som måste kastas ut oftare och nya produceras, vilket också en mycket energikrävande process.

Och naturligtvis skapas den ökade arbetsbelastningen av livsstilen i sig: människor spenderar nästan all sin tid på Internet och är mycket beroende av olika webbtjänster. Det är redan svårt att föreställa sig ett modernt samhälle utan moln-IT-infrastruktur (sociala nätverk, snabbmeddelanden, e-post, etc.)

Server- och webbplatskonfiguration

В den här artikeln Hårdvarukonfigurationen och mjukvarustacken för webbservern beskrivs i detalj.

Enkelkortsdator Olimex Olinuxino A20 Lime 2 vald för låg strömförbrukning och användbara ytterligare funktioner som strömhanteringschip AXP209. Det låter dig begära statistik om aktuell spänning och ström från kortet och batteriet. Mikrokretsen växlar automatiskt ström mellan batteriet och DC-kontakten, där ström flyter från solpanelen. Således är oavbruten strömförsörjning till servern med batteristöd möjlig.

Solcellsdriven hemwebbserver fungerade i 15 månader: drifttid 95,26 %
Olimex Olinuxino A20 Lime 2

Till en början valdes ett litiumpolymerbatteri med en kapacitet på 6600 mAh (ca 24 Wh) som batteri, sedan installerades ett blybatteri med en kapacitet på 84,4 Wh.

Operativsystemet startar från SD-kortet. Även om operativsystemet inte tar upp mer än 1 GB och den statiska webbplatsen är cirka 30 MB, var det ingen ekonomisk mening med att köpa ett kort mindre än en Class 10 16 GB.

Servern ansluter till Internet via en 100Mbps hemanslutning i Barcelona och en vanlig konsumentrouter. En statisk IP-adress är reserverad för den. Nästan vem som helst kan konfigurera en sådan plats i sin lägenhet; du måste ändra brandväggsinställningarna något för att vidarebefordra portar till lokal IP:

Port 80 till 80 för HTTP Port 443 till 443 för HTTPS Port 22 till 22 för SSH

Operativsystem Armbian Stretch baserat på Debiandistribution och kärna SUNXI, som är designad för enstaka kort med AllWinner-chips.

Solcellsdriven hemwebbserver fungerade i 15 månader: drifttid 95,26 %
En 50-watts solpanel för en webbserver och en 10-watts solpanel för belysning av vardagsrummet i författarens lägenhet

Statisk plats som genereras av systemet Pelikan (webbplatsgenerator i Python). Statiska webbplatser laddas snabbare och är mindre CPU-intensiva, så de är mycket mer energieffektiva än dynamiskt genererade sidor. Se källkoden för temat. här.

En mycket viktig punkt är bildkomprimering, eftersom utan denna optimering är det nästan omöjligt att göra webbsidor mindre än 1 megabyte. För optimering beslutades att konvertera fotografierna till halvtonsbilder. Här är till exempel ett fotografi av kvinnliga telefonister på en växel under förra seklet, 253 KB.

Solcellsdriven hemwebbserver fungerade i 15 månader: drifttid 95,26 %

Och här är en optimerad gråskalebild av storlek 36,5 KB med tre färger (svart, vit, grå). På grund av den optiska illusionen verkar det för betraktaren som om det finns mer än tre färger.

Solcellsdriven hemwebbserver fungerade i 15 månader: drifttid 95,26 %

Halvtonsfotografier valdes inte bara för att optimera storleken (ett ganska tveksamt beslut), utan också av estetiska skäl. Denna gamla bildbehandlingsteknik har vissa stilistiska drag, så sidan har en något unik design.

Efter optimering minskade 623 illustrationer på webbplatsen Low-tech Magazine i storlek från 194,2 MB till 21,3 MB, det vill säga med 89 %.

Alla gamla artiklar konverterades till Markdown för att underlätta att skriva nya artiklar, samt för att underlätta säkerhetskopiering via . Alla skript och spårare, såväl som logotyper, togs bort från webbplatsen. Standardteckensnittet i klientens webbläsare används. Som "logotyp" - tidningens namn med versaler med en pil till vänster: LOW←TECH MAGAZINE. Endast 16 byte istället för en bild.

Vid driftstopp har möjligheten till "offlineläsning" organiserats: texter och bilder exporteras till ett RSS-flöde. Cachning av 100 % innehåll är aktiverat, inklusive HTML.

En annan optimering är att aktivera HTTP2-inställningar i nginx, vilket minskar trafiken något och minskar sidladdningstiden jämfört med HTTP/1.1. Tabellen jämför resultaten för fem olika sidor.

| | FP | VI | HS | FW | CW | |-----------|-------|-------|-------|-------|------ -| | HTTP/1.1 | 1.46s | 1.87s | 1.54s | 1.86s | 1.89s | | HTTP2 | 1.30s | 1.49s | 1.54s | 1.79s | 1.55s | | Bilder | 9 | 21 | 11 | 19 | 23 | | besparingar | 11 % | 21 % | 0 % | 4 % | 18 % |

Fullständig nginx-konfiguration:

root@solarserver:/var/log/nginx# cat /etc/nginx/sites-enabled/solar.lowtechmagazine.com

# Expires map
map $sent_http_content_type $expires {
default off;
text/html 7d;
text/css max;
application/javascript max;
~image/ max;
}

server {
listen 80;
server_name solar.lowtechmagazine.com;

location / {
return 301 https://$server_name$request_uri;
}
}

server{
listen 443 ssl http2;
server_name solar.lowtechmagazine.com;

charset UTF-8; #improve page speed by sending the charset with the first response.

location / {
root /var/www/html/;
index index.html;
autoindex off;
}


#Caching (save html pages for 7 days, rest as long as possible, no caching on frontpage)
expires $expires;

location @index {
add_header Last-Modified $date_gmt;
add_header Cache-Control 'no-cache, no-store';
etag off;
expires off;
}

#error_page 404 /404.html;

# redirect server error pages to the static page /50x.html
#error_page 500 502 503 504 /50x.html;
#location = /50x.html {
# root /var/www/;
#}

#Compression

gzip on;
gzip_disable "msie6";
gzip_vary on;
gzip_comp_level 6;
gzip_buffers 16 8k;
gzip_http_version 1.1;
gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;


#Caching (save html page for 7 days, rest as long as possible)
expires $expires;

# Logs
access_log /var/log/nginx/solar.lowtechmagazine.com_ssl.access.log;
error_log /var/log/nginx/solar.lowtechmagazine.com_ssl.error.log;

# SSL Settings:
ssl_certificate /etc/letsencrypt/live/solar.lowtechmagazine.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/solar.lowtechmagazine.com/privkey.pem;

# Improve HTTPS performance with session resumption
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 5m;

# Enable server-side protection against BEAST attacks
ssl_prefer_server_ciphers on;
ssl_ciphers ECDH+AESGCM:ECDH+AES256:ECDH+AES128:DH+3DES:!ADH:!AECDH:!MD5;

# Disable SSLv3
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;

# Lower the buffer size to increase TTFB
ssl_buffer_size 4k;

# Diffie-Hellman parameter for DHE ciphersuites
# $ sudo openssl dhparam -out /etc/ssl/certs/dhparam.pem 4096
ssl_dhparam /etc/ssl/certs/dhparam.pem;

# Enable HSTS (https://developer.mozilla.org/en-US/docs/Security/HTTP_Strict_Transport_Security)
add_header Strict-Transport-Security "max-age=63072000; includeSubdomains";

# Enable OCSP stapling (http://blog.mozilla.org/security/2013/07/29/ocsp-stapling-in-firefox)
ssl_stapling on;
ssl_stapling_verify on;
ssl_trusted_certificate /etc/letsencrypt/live/solar.lowtechmagazine.com/fullchain.pem;
resolver 87.98.175.85 193.183.98.66 valid=300s;
resolver_timeout 5s;
}

Resultat av 15 månaders arbete

För perioden 12 december 2018 till 28 november 2019 visade servern drifttid 95,26 %. Det betyder att på grund av dåligt väder var stilleståndstiden för året 399 timmar.

Men om man inte tar hänsyn till de senaste två månaderna var drifttiden 98,2 %, och stilleståndstiden var bara 152 timmar, skriver utvecklarna. Drifttiden sjönk till 80 % under de senaste två månaderna när strömförbrukningen ökade på grund av en mjukvaruuppdatering. Varje kväll gick sajten ner i flera timmar.

Enligt statistiken för året (från 3 december 2018 till 24 november 2019) var serverns elförbrukning 9,53 kWh. Betydande förluster i solcellsanläggningen på grund av spänningsomvandling och batteriurladdning har registrerats. Solcellsregulatorn visade en årsförbrukning på 18,10 kWh, vilket innebär att systemets effektivitet är cirka 50 %.

Solcellsdriven hemwebbserver fungerade i 15 månader: drifttid 95,26 %
Förenklat diagram. Den visar inte en spänningsomvandlare från 12 till 5 volt och en batteriampere-timme

Under studieperioden besökte 865 000 unika besökare sajten. Inklusive alla energiförluster i solcellsanläggningen var energiförbrukningen per unik besökare 0,021 Wh. Således räcker en genererad kilowattimme solenergi för att betjäna nästan 50 000 unika besökare.

Under experimentet testades solpaneler av olika storlekar. Tabellen visar beräkningar av hur lång tid det tar att ladda batterier med olika kapacitet vid användning av solpaneler av olika storlekar.

Solcellsdriven hemwebbserver fungerade i 15 månader: drifttid 95,26 %

Den genomsnittliga strömförbrukningen för webbservern under det första året, inklusive alla energiförluster, var 1,97 watt. Beräkningen visar att att köra en webbplats över natten på årets kortaste natt (8 timmar 50 minuter, 21 juni) kräver 17,40 wattimmars lagringseffekt, och på den längsta natten (14 timmar 49 minuter, 21 december) behöver du 29,19 .XNUMX Wh.

Solcellsdriven hemwebbserver fungerade i 15 månader: drifttid 95,26 %

Eftersom blybatterier inte bör laddas ur under halva kapaciteten, kräver servern ett 60 Wh batteri för att överleva den längsta natten med optimalt dagsljus (2x29,19 Wh). Under större delen av året fungerade systemet med ett 86,4 Wh-batteri och en 50-watts solpanel, och då uppnåddes ovan nämnda 95-98% drifttid.

Drifttid 100 %

För 100 % drifttid är det nödvändigt att öka batterikapaciteten. För att kompensera för en dag med mycket dåligt väder (utan betydande kraftgenerering) behövs 47,28 wattimmar (24 timmar × 1,97 watt) lagring.

Från 1 december 2019 till 12 januari 2020 installerades ett 168-watts batteri i systemet, som har en praktisk lagringskapacitet på 84 wattimmar. Detta är tillräckligt med lagringsutrymme för att hålla webbplatsen igång i två nätter och en dag. Konfigurationen testades under årets mörkaste period, men vädret var relativt bra – och under den angivna perioden var drifttiden 100 %.

Men för att garantera 100 % drifttid i flera år måste du sörja för det värsta scenariot, när dåligt väder kvarstår i flera dagar. Beräkningen visar att för att hålla en webbplats online i fyra dagar med låg eller ingen energigenerering skulle du behöva ett blybatteri med en kapacitet på 440 wattimmar, vilket är storleken på ett bilbatteri.

I praktiken, under bra väderförhållanden, kommer ett 48 Wh blybatteri att hålla servern igång över natten från mars till september. Ett 24 Wh-batteri räcker till servern i maximalt 6 timmar, vilket innebär att den stängs av varje natt, men vid olika tidpunkter beroende på månad.

I stort sett behöver vissa sajter inte jobba nattetid, då antalet besökare är minimalt, säger killarna från Low-tech Magazine. Till exempel om det här är en regional stadspublikation, dit besökare från andra tidszoner inte kommer, utan bara lokala invånare.

Det vill säga att för sajter med olika trafik och olika drifttid behövs batterier med olika kapacitet och solpaneler i olika storlekar.

Solcellsdriven hemwebbserver fungerade i 15 månader: drifttid 95,26 %

Solcellsdriven hemwebbserver fungerade i 15 månader: drifttid 95,26 %

Författaren ger en beräkning av hur mycket energi som krävs för produktion själva solpanelerna (förkroppsligad energi) och hur mycket det blir om man delar denna mängd med den förväntade livslängden på 10 år.

Solcellsdriven hemwebbserver fungerade i 15 månader: drifttid 95,26 %

På så sätt är det möjligt att beräkna ekvivalenten av fossila bränslen som förbrukas vid produktion och drift av panelerna. Low-tech Magazine fann att deras system (50 W panel, 86,4 Wh batteri) under det första driftåret "genererade" cirka 9 kg utsläpp, eller motsvarande förbränning av 3 liter bensin: ungefär samma som en 50- år gammal personbil km resa.

Solcellsdriven hemwebbserver fungerade i 15 månader: drifttid 95,26 %

Om servern inte drivs från solpaneler, utan från det allmänna elnätet, verkar motsvarande utsläpp vara sex gånger lägre: 1,54 kg (den spanska energisektorn har en hög andel alternativ energi och kärnkraftverk). Men detta är inte en helt korrekt jämförelse, skriver författaren, eftersom den tar hänsyn till den förkroppsligade energin i solinfrastrukturen, men tar inte hänsyn till denna indikator för det allmänna energinätet, det vill säga kostnaderna för dess konstruktion och stöd .

Ytterligare förbättringar

Under den senaste tiden har ett antal optimeringar genomförts som har minskat serverns energiförbrukning. Till exempel, vid ett tillfälle märkte utvecklaren att 6,63 TB av den totala trafiken på 11,15 TB genererades av en felaktig RSS-feedimplementering som hämtade innehåll med några minuters mellanrum. Efter att ha åtgärdat detta fel minskade serverns strömförbrukning (exklusive energiförluster) från 1,14 W till cirka 0,95 W. Vinsten kan tyckas liten, men en skillnad på 0,19 W innebär 4,56 wattimmar per dag, vilket motsvarar mer än 2,5 timmars batteritid för servern.

Under det första året var effektiviteten endast 50 %. Förluster observerades vid laddning och urladdning av batteriet (22%), samt vid omvandling av spänningen från 12 V (solcellsanläggning) till 5 V (USB), där förlusterna var upp till 28%. Utvecklaren medger att han har en suboptimal spänningsomvandlare (kontroller utan inbyggd USB), så du kan optimera denna punkt eller byta till en 5V solcellsinstallation.

För att förbättra energilagringseffektiviteten kan blybatterier ersättas med dyrare litiumjonbatterier, som har lägre laddnings-/urladdningsförluster (<10%). Nu funderar designern på en kompakt energilagringssystem i form av tryckluft (CAES), som har en livslängd på decennier, vilket innebär ett mindre koldioxidavtryck på sin produktion.

Solcellsdriven hemwebbserver fungerade i 15 månader: drifttid 95,26 %
Kompakt energiackumulator för tryckluft, källa

Installation av ytterligare ett vindturbin övervägs (det kan vara göra av trä) och installera en solar tracker för att vända panelerna mot solen. Trackern låter dig öka elproduktionen med 30 %.

Solcellsdriven hemwebbserver fungerade i 15 månader: drifttid 95,26 %

Ett annat sätt att öka effektiviteten i systemet är att skala det. Höj fler webbplatser på servern och starta fler servrar. Då kommer energiförbrukningen per plats att minska.

Solcellsdriven hemwebbserver fungerade i 15 månader: drifttid 95,26 %
Solar hosting företag. Illustration: Diego Marmolejo

Om du täcker hela din lägenhetsbalkong med solpaneler och öppnar ett solcellswebbhotell blir kostnaden per kund betydligt lägre än för en enskild webbplats: skalfördelar.

Sammantaget visar detta experiment att det, givet vissa begränsningar, är fullt möjligt för datorinfrastruktur att drivas på förnybara energikällor.

Teoretiskt sett skulle en sådan server till och med klara sig utan batteri om den speglas i andra delar av världen. Installera till exempel speglar i Nya Zeeland och Chile. Där kommer solpaneler att fungera när det är natt i Barcelona.

Källa: will.com

Lägg en kommentar