De eerste prototype van een zonne-energie server met een laadcontroller. Foto:
In september 2018 lanceerde een enthousiasteling van Low-tech Magazine . Het doel was om het energieverbruik zo te verlagen dat een thuis self-hosted server genoeg had aan ƩƩn zonnepaneel. Dit is niet eenvoudig, want de website moet 24 uur per dag werken. Laten we kijken wat het resultaat is geworden.
U kunt de server bezoeken , om het huidige energieverbruik en het batterijpercentage te controleren. De website is geoptimaliseerd voor een minimaal aantal verzoeken per pagina en minimaal verkeer, zodat deze een piek in verkeer van Habr moet kunnen weerstaan. Volgens de berekeningen van de ontwikkelaar bedraagt het energieverbruik per unieke bezoeker 0,021 Wattā
uur.
Kort voor zonsopgang op 31 januari 2020 had hij nog 42% van de batterijcapaciteit over. De zonsopgang in Barcelona is om 8:04 lokale tijd, en daarna zou de stroom van het zonnepaneel moeten beginnen.

Waarom?
Tien jaar geleden voorspelden experts , en deze hoeveelheden blijven groeien. ook energie vereist
, waardoor het vandaag de dag gewoon onmogelijk is om volledig van fossiele brandstoffen (olie, gas, uranium) over te stappen. Maar deze voorraden zijn niet duurzaam, dus we moeten onvermijdelijk nadenken over hoe we van hernieuwbare energiebronnen kunnen leven. Dit omvat het functioneren van computerinfrastructuur, inclusief webservers. beschouwt als een probleem
het te snelle opblazen van webpagina's. Van 2010 tot 2018 is de gemiddelde paginagrootte toegenomen , en voor mobiele sites ā van 0,15 MB tot 1,6 MB, volgens conservatieve schattingen. overtreft de vooruitgang in energie-efficiĆ«ntie.
Verhoging van het verkeersvolume (de energie die nodig is om 1 megabyte informatie over te brengen), wat leidt tot een constante groei van het energieverbruik van het internet. Zwaardere en meer belaste websites verhogen niet alleen de druk op de netwerkinfrastructuur, maar verkorten ook de 'levensduur' van computers en smartphones, die vaker moeten worden weggegooid en vervangen, wat ook .
En natuurlijk wordt de toename van de belasting veroorzaakt door de manier van leven: mensen brengen vrijwel de hele tijd door op internet en vertrouwen in grote mate op verschillende webdiensten. De moderne samenleving is moeilijk voor te stellen zonder cloud IT-infrastructuur (sociale netwerken, messengers, e-mail, enz.)
Server- en websiteconfiguratie
In de hardwareconfiguratie en de softwarestack van de webserver worden in detail beschreven.
Single-board computer gekozen vanwege het lage energieverbruik en nuttige extra functies, zoals de aanwezigheid van een energiemanagementchip . Hiermee kan de statistiek van de huidige spanning en stroom van de platina en de batterij worden opgevraagd. De chip schakelt automatisch de stroomvoorziening tussen de accu en de DC-aansluiting, waar de stroom van het zonnepaneel binnenkomt. Hierdoor is ononderbroken stroomvoorziening voor de server met batterijondersteuning mogelijk.

Olimex Olinuxino A20 Lime 2
Oorspronkelijk werd een lithium-polymeer batterij van 6600 mAh (ongeveer 24 Wh) gekozen als accu, later werd een loodzuurbatterij van 84,4 Wh geplaatst.
Het besturingssysteem wordt op een SD-kaart geladen. Hoewel het OS niet meer dan 1 GB in beslag neemt en een statische website ongeveer 30 MB, had het economisch geen zin om een kaart te kopen van minder dan Class 10 16 GB.
De server is verbonden met het netwerk via een 100 Mbps thuisverbinding in Barcelona en een standaard consumentenrouter. Er is een statisch IP-adres voor gereserveerd. Bijna iedereen kan zo'n website in zijn appartement opzetten, het is alleen nodig om de firewall-instellingen iets aan te passen voor poortforwarding naar het lokale IP:
Port 80 naar 80 voor HTTP Port 443 naar 443 voor HTTPS Port 22 naar 22 voor SSH
Besturingssysteem gebaseerd op de Debian-distributie en de kernel , die is ontwikkeld voor single-board computers met AllWinner-chips.

50 watt zonnepaneel voor de webserver en een 10 watt paneel voor de verlichting van de woonkamer in het appartement van de auteur
De statische website is gegenereerd door het systeem (website generator op Python). Statische websites laden sneller en belasten de CPU niet, waardoor ze veel efficiƫnter zijn dan dynamisch gegenereerde pagina's, vanuit energiebesparingsperspectief. De broncode van het thema is. .
Een heel belangrijk punt is het comprimeren van afbeeldingen, want zonder deze optimalisatie is het bijna onmogelijk om webpagina's onder de 1 megabyte te krijgen. Voor de optimalisatie is besloten om foto's om te zetten naar halftoonafbeeldingen. Ter illustratie, hier is een foto van vrouwelijke telefonisten bij een schakelkast in de vorige eeuw. .

Hier is een geoptimaliseerde halftoonafbeelding van met drie kleuren (zwart, wit, grijs). Door optische illusies lijkt het voor de kijker alsof het aantal kleuren meer dan drie is.

Halftoonfoto's zijn niet alleen gekozen voor de grootte optimalisatie (een vrij twijfelachtige beslissing), maar ook om esthetische redenen. Deze oude techniek van beeldverwerking heeft bepaalde stijlkenmerken, waardoor de website op een bepaalde manier een uniek ontwerp heeft gekregen.
623 illustraties op de website van Low-tech Magazine zijn na optimalisatie verkleind van 194,2 MB naar 21,3 MB, wat een vermindering van 89% betekent.
Alle oude artikelen zijn omgezet naar Markdown voor het gemak bij het schrijven van nieuwe artikelen, evenals voor het gemak van back-up via . Alle scripts en trackers zijn van de site verwijderd, evenals logo's. De lettertype is het standaardlettertype van de browser van de klant. Als ālogoā is er de naam van het tijdschrift in hoofdletters met een pijl naar links: LOWāTECH MAGAZINE. Slechts 16 bytes in plaats van een afbeelding.
Voor het geval van downtime is de mogelijkheid voor 'offline lezen' georganiseerd: teksten en afbeeldingen worden geƫxporteerd naar een RSS-feed. 100% van de content, inclusief HTML, is gecached.
Nog een optimalisatie is de activering van de HTTP2-instelling in nginx, wat de datatransmissie iets vermindert en de laadtijd van pagina's verkort, vergeleken met HTTP/1.1. In de tabel worden de resultaten voor vijf verschillende pagina's vergeleken.
| | FP | WE | 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 | | Afbeeldingen | 9 | 21 | 11 | 19 | 23 | | besparing | 11% | 21% | 0% | 4% | 18% |
Volledige configuratie van nginx:
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; #verbeter de paginasnelheid door het charset met het eerste antwoord te verzenden.
location / {
root /var/www/html/;
index index.html;
autoindex off;
}
#Caching (sla html-pagina's 7 dagen op, de rest zo lang mogelijk, geen caching op de voorpagina)
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/;
#}
#Compressie
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 (sla html-pagina's 7 dagen op, de rest zo lang mogelijk)
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 Instellingen:
ssl_certificate /etc/letsencrypt/live/solar.lowtechmagazine.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/solar.lowtechmagazine.com/privkey.pem;
# Verbeter de HTTPS-prestaties met sessieherstel
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 5m;
# Activeer server-side bescherming tegen BEAST-aanvallen
ssl_prefer_server_ciphers on;
ssl_ciphers ECDH+AESGCM:ECDH+AES256:ECDH+AES128:DH+3DES:!ADH:!AECDH:!MD5;
# Deactiveer SSLv3
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
# Verlaag de buffergrootte om TTFB te vergroten
ssl_buffer_size 4k;
# Diffie-Hellman parameter voor DHE ciphersuites
# $ sudo openssl dhparam -out /etc/ssl/certs/dhparam.pem 4096
ssl_dhparam /etc/ssl/certs/dhparam.pem;
# Activeer HSTS (https://developer.mozilla.org/en-US/docs/Security/HTTP_Strict_Transport_Security)
add_header Strict-Transport-Security "max-age=63072000; includeSubdomains";
# Activeer OCSP-stapeling (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;
}Resultaten van 15 maanden werk
Van 12 december 2018 tot 28 november 2019 toonde de server . Dit betekent dat door slecht weer de downtime per jaar 399 uur bedroeg.
Maar als we de laatste twee maanden negeren, was de uptime 98,2%, en de downtime slechts 152 uur, schrijven de ontwikkelaars. De uptime viel tot 80% in de afgelopen twee maanden, toen het energieverbruik steeg door een software-update. Elke nacht werd de site enkele uren uitgeschakeld.
Volgens statistieken bedroeg het energieverbruik van de server in een jaar (van 3 december 2018 tot 24 november 2019) 9,53 kWh. Er zijn aanzienlijke verliezen in het fotovoltaïsche systeem geregistreerd als gevolg van spanningsomzetting en ontlading van de batterij. De zonnecontroller toonde een jaarlijks verbruik van 18,10 kWh, wat duidt op een efficiëntie van ongeveer 50%.

Eenvoudig schema. Hierop zijn de spanningsomzetter van 12 naar 5 volt en de batterij amperemeter niet weergegeven.
In de onderzochte periode verwelkomde de website 865.000 unieke bezoekers. Inclusief alle energieverliezen in de zonne-installatie bedroeg het energieverbruik per unieke bezoeker 0,021 Wh. Dit betekent dat ƩƩn kilowattuur opgewekte zonne-energie voldoende is voor de service van bijna 50.000 unieke bezoekers.
Tijdens het experiment werden zonnepanelen van verschillende groottes getest. In de tabel zijn de berekeningen opgenomen voor de tijd die nodig is om batterijen van verschillende capaciteiten op te laden met behulp van zonnepanelen van verschillende groottes.

Het gemiddelde energieverbruik van de webserver gedurende het eerste jaar, inclusief alle energieverliezen, bedroeg 1,97 W. De berekening toont aan dat voor het onderhoud van de website 's nachts in de kortste nacht van het jaar (8 uur en 50 minuten, 21 juni) 17,40 wattuur aan opslagsysteem nodig is, en in de langste nacht (14 uur en 49 minuten, 21 december) is 29,19 Wh nodig.

Aangezien loodzuurbatterijen niet onder de helft van hun capaciteit mogen worden ontladen, heeft de server een batterij van 60 Wh nodig om de langste nacht door te komen bij optimale daglichtomstandigheden (2Ć29,19 Wh). Gedurende het grootste deel van het jaar werkte het systeem met een batterij van 86,4 Wh en een zonnepaneel van 50 watt, wat resulteerde in de eerder genoemde uptime van 95-98%.
Uptime 100%
Voor een uptime van 100% is een verhoogde batterijcapaciteit vereist. Om één dag met zeer slecht weer (zonder significante energieopwekking) te compenseren, is 47,28 wattuur (24 uur à 1,97 watt) aan opslag nodig.
Van 1 december 2019 tot 12 januari 2020 werd een 168-watt batterij in het systeem geplaatst, met een praktische opslagcapaciteit van 84 watt-uur. Deze opslag is voldoende om de werking van de website twee nachten en ƩƩn dag te ondersteunen. De configuratie werd getest in de donkerste periode van het jaar, maar het weer was relatief goed ā en gedurende de aangegeven periode was de uptime 100%.
Maar om 100% uptime gedurende meerdere jaren te garanderen, moet ook het slechtste scenario worden overwogen, waarbij slecht weer enkele dagen aanhoudt. De berekening toont aan: om de website vier dagen online te houden met lage of geen energieopbrengst, is een loodzuuraccu met een capaciteit van 440 watt-uur nodig, ongeveer ter grootte van een autobatterij.
In de praktijk zal een loodzuuraccu met een capaciteit van 48 watt-uur de server 's nachts van maart tot september draaiende houden. Een batterij van 24 watt-uur kan de server maximaal 6 uur ondersteunen, wat betekent dat deze elke nacht zal uitschakelen, hoewel op verschillende tijden, afhankelijk van de maand.
Over het algemeen is het voor sommige websites niet nodig om 's nachts te draaien, wanneer het aantal bezoekers minimaal is, volgens de jongens van Low-tech Magazine. Bijvoorbeeld, als het gaat om een regionale stedelijke publicatie die niet wordt bezocht door bezoekers uit andere tijdzones, maar alleen door lokale inwoners.
Dit betekent dat voor websites met verschillende bezoekersaantallen en verschillende uptime, accu's met verschillende capaciteiten en zonnepanelen van verschillende maten nodig zijn.


De auteur geeft een berekening van de energie die nodig is voor de productie van de zonnepanelen zelf (belichaamde energie) en hoeveel er ontstaat wanneer deze hoeveelheid wordt gedeeld door de verwachte levensduur van 10 jaar.

Met andere woorden, er kan een analogie worden berekend voor de fossiele brandstoffen die zijn verbruikt voor de productie en exploitatie van de panelen. Low-tech Magazine ontdekte dat hun systeem (paneel van 50 watt, batterij van 86,4 watt-uur) in het eerste jaar ongeveer 9 kg aan uitstoot 'gegenereerd' heeft, wat overeenkomt met de verbranding van 3 liter benzine: ongeveer zoveel als een auto over 50 km afstand verbruikt.

Als een server niet op zonne-energie wordt aangedreven, maar op het algemene elektriciteitsnet, dan is de equivalente uitstoot ongeveer zes keer lager: 1,54 kg (in de Spaanse energiemix is er een hoge bijdrage van hernieuwbare energie en nucleaire energie). Maar dit is geen volledig eerlijke vergelijking, schrijft de auteur, omdat het de embodied energy van de zonne-infrastructuur meerekent, maar deze factor voor het algemene elektriciteitsnet niet in overweging neemt, dat wil zeggen de kosten voor de bouw en het onderhoud ervan.
Verdere verbeteringen
In de afgelopen tijd zijn er verschillende optimalisaties uitgevoerd die het energieverbruik van de server hebben verminderd. Bijvoorbeeld, op een gegeven moment merkte de ontwikkelaar op dat 6,63 TB van de totale 11,15 TB aan verkeer werd gegenereerd door een onjuiste implementatie van de RSS-feed, die om de paar minuten content ophaalt. Na het verhelpen van deze bug daalde het energieverbruik van de server (zonder rekening te houden met energieverlies) van 1,14 W naar ongeveer 0,95 W. De winst lijkt misschien klein, maar het verschil van 0,19 W betekent 4,56 watt-uur per dag, wat overeenkomt met meer dan 2,5 uur autonome werking van de server.
In het eerste jaar was de efficiëntie slechts 50%. Verliezen deden zich voor tijdens het opladen en ontladen van de batterij (22%), evenals bij de omzetting van spanning van 12 V (zonne-fotovoltaïsch systeem) naar 5 V (USB), waarbij de verliezen tot 28% oplopen. De ontwikkelaar erkent dat hij een suboptimale spanningsomvormer heeft (een controller zonder ingebouwde USB), dus het is mogelijk om dit punt te optimaliseren of over te stappen naar een zonne-installatie van 5V.
Om de efficiƫntie van energieopslag te verbeteren, kunnen loodzuurbatterijen worden vervangen door duurdere lithium-ionbatterijen, die minder verlies tijdens opladen/ontladen hebben (<10%). De ontwerper overweegt momenteel een compacte (CAES), dat een levensduur heeft van tientallen jaren, wat betekent dat het een kleinere "carbon footprint" heeft bij de productie.

Een compacte energieaccu op basis van samengeperste lucht,
Er wordt overwogen om een extra windturbine te installeren (deze kan ) en een zonnetracker te installeren om de panelen naar de zon te draaien. De tracker maakt een verhoging van de elektriciteitsproductie met 30% mogelijk.

Een andere manier om de efficiƫntie van het systeem te verhogen, is het opschalen. Meer websites op de server hosten en meer servers draaien. Dit zal het energieverbruik per website verlagen.

Zonnehostingbedrijf. Illustratie: Diego Marmolejo
Als je het hele balkon van je appartement bedekt met zonnepanelen en een zonne-webhostingsbedrijf opstart, zullen de kosten per klant aanzienlijk lager zijn dan voor ƩƩn enkele website: schaalvoordelen.
Over het algemeen toont dit experiment aan dat onder bepaalde beperkingen computerinfrastructuur prima kan draaien op hernieuwbare energiebronnen.
Theoretisch kan zo'n server zelfs zonder batterij werken, als je het op andere plekken ter wereld spiegelt. Bijvoorbeeld, spiegels plaatsen in Nieuw-Zeeland en Chili. Daar zullen de zonnepanelen werken wanneer het nacht is in Barcelona.
Bron: habr.com
