První prototyp solárního serveru s řídicí jednotkou nabíjení. Foto:
V září 2018 nadšenec z Low-tech Magazine . Úkolem bylo snížit spotřebu energie natolik, aby domácímu self-hosted serveru stačila jedna solární panel. Není to snadné, protože server musí fungovat 24 hodin denně. Podívejme se, co z toho nakonec vzešlo.
Můžete navštívit server , zkontrolovat aktuální spotřebu energie a úroveň nabití baterie. Webová stránka je optimalizována na minimální počet požadavků a minimální provoz, takže by měla vydržet náraz návštěvnosti z Habr. Podle výpočtů vývojáře činí spotřeba energie na jednoho unikátního návštěvníka 0,021 Wh.
Několik minut před svítáním 31. ledna 2020 mu zbývalo 42 % nabití baterie. Svítání v Barceloně bylo v 8:04 místního času, poté by mělo proudit napětí ze solárního panelu.

Proč?
Před deseti lety experti , že rozvoj internetu povede k „dematerializaci“ společnosti, celkové digitalizaci — a tím ke snížení celkové spotřeby energie. Mýlili se. Ve skutečnosti internet sám vyžaduje , a toto množství stále roste.
IT společnosti zahájily iniciativy na přechod na alternativní zdroje energie, ale to je nyní nemožné. Všechny datové centra spotřebovávají třikrát více energie, než kolik generují všechny solární a větrné elektrárny na světě. Co je horší, výroba a pravidelná výměna solárních panelů a větrných turbín , proto je dnes prostě nemožné vzdát se fosilních paliv (ropa, plyn, uran). Ale těchto zásob dlouho nevydrží, a proto se nutně musíme zamyslet, jak žít na obnovitelných zdrojích. Zahrnující fungování počítačové infrastruktury, včetně webových serverů.
Low-tech Magazine příliš rychlé nafukování webových stránek. Od roku 2010 do roku 2018 se průměrná velikost stránky zvýšila , a u mobilních webů — z 0,15 MB na 1,6 MB, podle konzervativního odhadu.
Zvýšení objemů provozu (energie potřebná k přenosu 1 megabajtu informací), což neustále zvyšuje energetickou náročnost internetu. Těžší a zatížené weby nejenže zvyšují zátěž na síťovou infrastrukturu, ale také zkracují „životnost“ počítačů a chytrých telefonů, které je nutné častěji vyhazovat a vyrábět nové, což rovněž .
A samozřejmě, zvýšenou zátěž tvoří samotný způsob života: lidé tráví téměř celý čas na internetu a v mnoha ohledech se spoléhají na různé webové služby. Moderní společnost si již těžko představit bez cloudové IT infrastruktury (sociální sítě, messengery, e-mail atd.)
Konfigurace serveru a webové stránky
V podrobně popisuje hardwarovou konfiguraci a softwarový stack webového serveru.
Jednodeskový počítač byl vybrán pro nízkou spotřebu energie a užitečné další funkce, jako je přítomnost obvodu řízení napájení . Umožňuje dotazovat statistiky o aktuálním napětí a proudění z desky a z baterie. Obvod automaticky přepíná napájení mezi akumulátorem a DC konektorem, kam teče proud ze solárního panelu. Tak je možné zajistit nepřetržité napájení serveru s podporou akumulátoru.

Olimex Olinuxino A20 Lime 2
Původně byla jako akumulátor vybrána lithium-polymerová baterie s kapacitou 6600 mAh (přibližně 24 Wh), později byla nahradila olověno-kyselinová baterie s kapacitou 84,4 Wh.
Operační systém se spouští z microSD karty. Ačkoli OS zabírá maximálně 1 GB a statická webová stránka asi 30 MB, nedávalo ekonomický smysl kupovat kartu menší než Class 10 16 GB.
Server se připojuje k síti přes 100megabitové domácí připojení v Barceloně a standardní spotřebitelský router. Pro něj je rezervována statická IP adresa. Prakticky každý si může takový web postavit ve svém bytě, stačí mírně upravit nastavení firewallu pro forwarding portů na lokální IP:
Port 80 na 80 pro HTTP Port 443 na 443 pro HTTPS Port 22 na 22 pro SSH
Operační systém na bázi distribuce Debian a jádra , které bylo vyvinuto pro jednodeskové počítače s čipy AllWinner.

50w solární panel pro webový server a 10w panel pro osvětlení obývacího pokoje v bytě autora
Statická stránka byla vygenerována systémem (generátor webových stránek v Pythonu). Statické stránky se načítají rychleji a nezatěžují CPU, takže jsou mnohem účinnější než dynamicky generované stránky z hlediska spotřeby energie. Zdrojový kód šablony. .
Velmi důležitý moment — komprese obrázků, protože bez této optimalizace je prakticky nemožné vytvořit webové stránky menší než 1 megabajt. Pro optimalizaci bylo rozhodnuto převést fotografie na polotónové obrázky. Například zde je fotografie telefonistek u přepínače z minulého století. .

A zde je optimalizovaný polotónový obrázek o velikosti se třemi barvami (černá, bílá, šedá). Díky optické iluzi se divákovi zdá, že je barev více než tři.

Polotónové fotografie byly vybrány nejen pro optimalizaci velikosti (to je poměrně sporné rozhodnutí), ale také z estetických důvodů. Tato stará technika zpracování obrázků má určité stylové rysy, takže web získal v jistém smyslu jedinečný design.
623 ilustrace na webu magazínu Low-tech Magazine po optimalizaci zmenšily svou velikost z 194,2 MB na 21,3 MB, tedy o 89%.
Všechny staré články byly převedeny do Markdownu pro usnadnění psaní nových článků a také pro jednodušší zálohování přes . Z webu byly odstraněny všechny skripty a trackery, stejně jako loga. Používá se výchozí písmo v prohlížeči klienta. Jako „logo“ slouží název magazínu velkými písmeny se šipkou vlevo: LOW←TECH MAGAZINE. Celkem 16 bytů místo obrázku.
Pro případ výpadku byla zorganizována možnost „offline čtení“: texty a obrázky se exportují do RSS feedu. Je aktivováno ukládání 100% obsahu do cache, včetně HTML.
Další optimalizací je aktivace nastavení HTTP2 v nginx, což mírně snižuje objem dat a zkracuje dobu načítání stránek ve srovnání s HTTP/1.1. V tabulce jsou porovnány výsledky pro pět různých stránek.
| | 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 | | Obrázky | 9 | 21 | 11 | 19 | 23 | | úspory | 11% | 21% | 0% | 4% | 18% |
Úplná konfigurace 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; #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;
}Výsledky 15 měsíců provozu
V období od 12. prosince 2018 do 28. listopadu 2019 server vykázal . To znamená, že přerušení provozu kvůli špatnému počasí za rok činilo 399 hodin.
Ale pokud nebereme v úvahu poslední dva měsíce, doba bezporuchového provozu činila 98,2 % a doba výpadku pouze 152 hodin, uvádějí vývojáři. Doba bezporuchového provozu klesla na 80 % v posledních dvou měsících, kdy se spotřeba energie zvýšila kvůli aktualizaci softwaru. Každou noc byla stránka na několik hodin vypnuta.
Podle statistik za období od 3. prosince 2018 do 24. listopadu 2019 činila spotřeba elektrické energie serveru 9,53 kWh. Byly zaznamenány značné ztráty v fotovoltaickém systému kvůli převodu napětí a vybíjení baterie. Solární regulátor ukázal roční spotřebu 18,10 kWh, což znamená účinnost systému přibližně 50 %.

Zjednodušený diagram. Na něm není zobrazen převodník napětí z 12 na 5 voltů a bateriový měřič ampérhodin.
Během zkoumaného období navštívilo web 865 000 unikátních návštěvníků. I s ohledem na veškeré ztráty energie ve slunečním systému činila spotřeba energie na jednoho unikátního návštěvníka 0,021 Wh. Takže jedno kilowatt-hodina vyráběné sluneční energie stačí na obsluhu téměř 50 000 unikátních návštěvníků.
Během experimentu byly testovány sluneční panely různých velikostí. V tabulce jsou uvedeny výpočty, za jak dlouho se nabíjejí akumulátory různých kapacit při použití slunečních panelů různých velikostí.

Průměrný příkon webového serveru během prvního roku, včetně všech ztrát energie, činil 1,97 W. Výpočet ukazuje, že pro udržení webové stránky v noci během nejkratší noci v roce (8 hodin 50 minut, 21. června) je potřeba 17,40 watt-hodin kapacity, zatímco během nejdelší noci (14 hodin 49 minut, 21. prosince) je potřeba 29,19 Wh.

Jelikož olověné akumulátory by neměly být vybitěny pod polovinu své kapacity, server potřebuje baterii o výkonu 60 Wh, aby přežil nejdelší noc při optimální denní osvětlenosti (2×29,19 Wh). Většinu roku systém pracoval s akumulátorem 86,4 Wh a 50-wattovým solárním panelem, čímž byl dosažen uvedený uptime 95-98 %.
Uptime 100 %
Pro dosažení uptime 100 % je nutné zvýšit kapacitu akumulátorů. K vyrovnání jednoho dne velmi špatného počasí (bez významné výroby elektrické energie) je potřeba 47,28 watt-hodin (24 hodin × 1,97 wattů) úložného prostoru.
Od 1. prosince 2019 do 12. ledna 2020 byla do systému nainstalována 168wattová baterie, která má praktickou kapacitu úložiště 84 watt-hodin. Tato kapacita je dostatečná k udržení chodu webu po dobu dvou nocí a jednoho dne. Konfigurace byla testována v nejtemnějším období roku, ale počasí bylo relativně dobré — a během uvedeného období činil čas bezporuchového provozu 100%.
Abychom však zajistili 100% dostupnost po řadu let, je třeba zohlednit i ten nejhorší scénář, kdy špatné počasí trvá několik dní. Výpočty ukazují: pro udržení webu online po dobu čtyř dnů s nízkou nebo nulovou výrobou energie bude potřeba olověno-kyselinová baterie s kapacitou 440 watt-hodin, tedy velikostí odpovídající automobilové baterii.
V praxi při dobrém počasí olověno-kyselinová baterie s kapacitou 48 Wh udrží server v chodu přes noc od března do září. Baterie o kapacitě 24 Wh udrží server maximálně 6 hodin, což znamená, že se odpojí každou noc, a to v různé časy v závislosti na měsíci.
V zásadě některé weby nemusí fungovat v noci, kdy je počet návštěvníků minimální, tvrdí kluci z Low-tech Magazine. Například pokud jde o regionální městský časopis, kam nechodí návštěvníci z jiných časových pásem, ale pouze místní obyvatelé.
To znamená, že pro weby s různou návštěvností a různou dostupností jsou zapotřebí akumulátory různé kapacity a solární panely různých velikostí.


Autor vypracovává výpočet, kolik energie je potřeba na výrobu samotných solárních panelů (embodied energy) a kolik energie se získá, pokud tuto hodnotu vydělíme očekávanou životností 10 let.

Tímto způsobem lze vypočítat ekvivalent fosilního paliva, které bylo spotřebováno na výrobu a provoz panelů. Podle Low-tech Magazine vyprodukoval jejich systém (50W panel, 86,4 Wh baterie) během prvního roku provozu přibližně 9 kg emisí nebo ekvivalent spálení 3 litrů benzínu: přibližně tolik, kolik osobní auto vyprodukuje za 50 km jízdy.

Pokud server není napájen ze slunečních baterií, ale z veřejné energetické sítě, pak ekvivalent emisí vychází asi šestkrát nižší: 1,54 kg (ve španělské energetice je vysoký podíl alternativní energetiky a jaderných elektráren). Ale autor říká, že toto srovnání není úplně korektní, protože zohledňuje embodied energy sluneční infrastruktury, ale nezohledňuje tuto hodnotu pro veřejnou energetickou síť, tedy náklady na její výstavbu a údržbu.
Další vylepšení
V uplynulém čase bylo provedeno několik optimalizací, které snížily spotřebu energie serveru. Například, v určitém okamžiku vývojář zjistil, že 6,63 TB z celkových 11,15 TB provozu generuje jedna nesprávná implementace RSS feedu, která tahá obsah každých pár minut. Po opravě této chyby se spotřeba energie serveru (bez zohlednění ztrát energie) snížila z 1,14 W na přibližně 0,95 W. Zisk se může zdát malý, ale rozdíl 0,19 W znamená 4,56 watthodin za den, což odpovídá více než 2,5 hodinám autonomního provozu serveru.
Během prvního roku činila účinnost pouze 50%. Ztráty byly pozorovány při nabíjení a vybíjení baterie (22%) a také při převodu napětí z 12 V (solární fotovoltaický systém) na 5 V (USB), kde ztráty činí až 28%. Vývojář přiznává, že má suboptimální napěťový měnič (regulátor bez vestavěného USB), takže je možné tento moment optimalizovat nebo přejít na solární instalaci 5V.
Pro zvýšení účinnosti ukládání energie je možné nahradit olověno-kyselinové baterie dražšími lithium-iontovými, které mají menší ztráty při nabíjení/vybíjení (<10%). Nyní konstruktér zvažuje kompaktní (CAES), který má životnost desítky let, což znamená menší „uhlíkovou stopu“ při její výrobě.

Kompaktní akumulátor energie na stlačeném vzduchu,
Zvažuje se instalace další větrné turbíny (tu lze ) a instalace slunečního sledu, který otáčí panely směrem ke slunci. Sledovač umožňuje zvýšit výrobu elektřiny o 30%.

Další způsob, jak zvýšit efektivitu systému, je jeho škálování. Hostit více webových stránek na serveru a spustit více serverů. Tím se sníží energetická spotřeba na každý web.

Společnost slunečního hostingu. Ilustrace: Diego Marmolejo
Pokud pokryjete celý balkon bytu solárními panely a založíte společnost slunečního webhostingu, náklady na každého klienta budou výrazně nižší než na jediný web: úspora z rozsahu.
Celkově tento experiment ukazuje, že za určitých podmínek může počítačová infrastruktura fungovat na obnovitelných zdrojích energie.
Teoreticky by takový server mohl obejít i bez baterie, pokud by byl zrcadlen v jiných částech světa. Například umístit zrcadla na Novém Zélandu a v Chile. Tam budou solární panely fungovat, když je v Barceloně noc.
Zdroj: habr.com
