太阳能家庭服务器工作了15个月:正常运行时间为95.26%


第一台带有充电控制器的原型太阳能服务器。照片:solar.lowtechmagazine.com

在2018年9月,来自《低科技》杂志的狂热者发起了一个“低科技”网络服务器项目目标是降低功耗,以使单个太阳能电池板足以满足家用自托管服务器的需求。这并不容易,因为该站点应该一天24小时工作。让我们看看最终发生了什么。

您可以转到服务器 solar.lowtechmagazine.com,检查当前功耗和电池电量。该网站针对页面的最少请求数和最小流量进行了优化,因此它必须承受来自Habr的流量激增。根据开发人员的计算,每位唯一访问者的能耗为0.021 Wh。

黎明前不久,即2020年1月31日,他还剩下42%的电池电量。当地时间8:04在巴塞罗那黎明,之后电流应从太阳能电池板流出。



做什么的?


十年前,专家预测,互联网的发展有助于社会的“非物质化”,普遍的数字化,并因此减少了总体能源消耗。他们弄错了。实际上,Internet本身需要大量的能量,并且这些量还在不断增长。

IT公司已经发起了改用替代电源的计划,但是现在这是不可能的。所有数据中心的能耗比世界上所有太阳能和风能设备的能耗高三倍。更糟糕的是,生产和定期更换太阳能电池板和风车也需要能源因此,今天根本不可能放弃化石生物多样性(石油,天然气,铀)。但是这些储备在很长一段时间内还不够,因此我们不可避免地不得不考虑如何生活在可再生资源上。包括运行计算机基础设施在内的Web服务器。

《低科技杂志》认为网页膨胀过快的问题。据保守估计,从2010年到2018年,平均页面大小从0.45 MB增加到1.7 MB,而移动网站的平均页面大小从0.15 MB增加到1.6 MB。

在提高能效之前增加流量(传输1兆字节信息所需的能量),这导致Internet的能耗不断增加。越来越重的站点不仅增加了网络基础架构的负担,而且缩短了计算机和智能手机的“生命周期”,而这些生命周期通常不得不丢弃并进行更新,这也是一个非常耗能的过程

当然,增加负担是由生活方式本身造成的:人们几乎所有时间都花在Internet上,并且严重依赖各种Web服务。很难想象没有云IT基础设施(社交网络,即时通讯程序,邮件等)的现代社会。

服务器和网站配置


本文中详细描述了硬件配置和软件堆栈Web服务器。

选择Olimex Olinuxino A20 Lime 2单板计算机是因为其低功耗和有用的附加功能,例如AXP209电源管理芯片。它允许您从开发板和电池中请求有关当前电压和电流强度的统计信息。该芯片会自动在电池和DC连接器之间切换电源,在此处,电流从太阳能电池板流出。因此,有电池支持的服务器可以不间断地供电。


Olimex Olinuxino A20青柠2

最初,选择容量为6600 mAh(约24 Wh)的锂聚合物电池作为电池,然后将酸铅电池置于84.4 Wh。

操作系统从SD卡引导。尽管操作系统占用的内存不超过1 GB,并且静态网站的内存约为30 MB,但从经济上考虑,没有理由购买小于Class 10 16 GB的卡。

服务器通过巴塞罗那的100 MB家庭连接和标准的消费者路由器连接到网络。为其保留一个静态IP地址。几乎每个人都可以在自己的公寓中建立这样的站点,您需要稍微更改防火墙设置以将端口转发到本地IP:

HTTP的端口80到80
HTTPS的端口443至443
SSH的端口22到22

基于Debian发行版和SUNXI内核的Armbian Stretch 操作系统,专为具有AllWinner芯片的单板卡而设计。一个50瓦的太阳能电池板用于Web服务器,一个10瓦的太阳能板用于照明作者公寓的客厅, 静态站点由Pelican系统(Python网站生成器)生成。静态站点加载速度更快,并且不会给CPU造成负担,因此从能耗的角度来看,静态站点比动态生成的页面效率更高。请在此处查看主题的源代码






非常重要的一点是图像压缩,因为如果没有这种优化,几乎不可能使网页小于1 MB。为了进行优化,决定将照片转换为灰度图像。例如,这是上个世纪253 KB的女性电话接线员在交换机上的照片



但是,优化后的36.5 KB灰度图像具有三种颜色(黑色,白色,灰色)。由于视觉上的错觉,观看者似乎拥有三种以上的颜色。



选择半色调照片不仅是为了优化尺寸(解决方案相当可疑),也是出于美学考虑。这种旧的图像处理技术具有某些风格,因此该网站以一种独特的设计方式出现。

经过优化后,《低端技术》杂志网站上的623个插图的大小从194.2 MB减少到21.3 MB,即89%。

所有旧文章都被转换为Markdown,以便于撰写新文章以及通过git进行备份。所有脚本和跟踪器以及徽标均已从站点中删除。客户端浏览器中使用默认字体。作为“徽标”-杂志的名称以大写字母显示,并带有左箭头:LOW←TECH MAGAZINE。只有16个字节而不是图片。

如果发生停机,则组织“离线阅读”的可能性:将文本和图片导出到RSS feed。包括100%内容的缓存,包括HTML。

另一个优化是nginx中包含HTTP2设置,与HTTP / 1.1相比,它可以稍微减少流量并缩短页面加载时间。该表比较了五个不同页面的结果。

| | FP | 我们| Hs | Fw | CW |
| ---------- | ------- | ------- | ------- | ------- | ------ -|
| HTTP / 1.1 | 1.46秒| 1.87秒| 1.54秒| 1.86秒| 1.89秒|
| HTTP2 | 1.30秒| 1.49秒| 1.54秒| 1.79秒| 1.55秒|
| 图片| 9 | 21 | 11 | 19 | 23 |
| 储蓄| 11%| 21%| 0%| 4%| 18%|


完整的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;
}

15个月的工作结果


从2018年12月12日到2019年11月28日,服务器的正常运行时间为95.26%。这意味着由于天气恶劣,全年的停机时间为399小时。

但是,如果您不考虑最近两个月的时间,则开发人员写道,正常运行时间为98.2%,停机时间仅为152小时。过去两个月,由于软件更新导致功耗增加,正常运行时间已降至80%。每天晚上,该站点停机了几个小时。

根据统计数据,该年(从2018年12月3日到2019年11月24日)的服务器功耗为9.53 kWh。由于电压转换和电池放电,在光伏系统中记录了重大损失。该太阳能控制器的年耗电量为18.10 kWh,这意味着系统效率约为50%。


简化方案。它没有显示12V至5V的电压转换器和电池安培小时表,

在研究期间,有865,000位唯一身份的访客访问了该站点。包括太阳能装置中的所有能量损失,每位唯一访问者的能量消耗为0.021 Wh。因此,一千瓦时产生的太阳能足以满足将近50,000位唯一身份访问者的需求。

在实验过程中,测试了不同尺寸的太阳能电池板。下表显示了使用不同尺寸的太阳能电池板时,要为不同容量的电池充电多长时间的计算。



第一年中,Web服务器的平均功耗(包括所有能量损耗)为1.97瓦。计算结果表明,要在一年中最短的夜晚(6月21日8小时50分钟)晚上维护网站,则需要17.40瓦时的存储功率,而在最长的夜晚(12月21日14小时49分钟)则需要存储功率。 ,19 Wh



由于铅酸电池的放电量不应低于容量的一半,因此服务器需要60 Wh的电池才能在最佳的日光条件下(2×29.19 Wh)寿命最长。在一年中的大部分时间里,该系统都使用86.4 Wh / h电池和50瓦太阳能电池板工作,然后实现了上述95-98%的正常运行时间。

正常运行时间100%


对于正常运行时间,100%需要增加电池容量。为了补偿一天的恶劣天气(没有大量发电),您需要47.28瓦时(24小时×1.97瓦)的存储。

从2019年12月1日到2020年1月12日,系统中安装了168瓦电池,实际存储容量为84瓦时。此存储足以将站点维护两晚零一天。该配置在一年中最黑暗的时期进行了测试,但天气相对良好-在此期间,正常运行时间为100%。

但是,为了保证几年内100%的正常运行时间,有必要预见最坏的情况,即恶劣天气持续数天。计算结果表明:为了使网站保持低能耗或零能耗的状态持续四天,您将需要容量为440瓦时的铅酸电池,即汽车电池的大小。

实际上,在天气良好的情况下,三月至九月的夜晚将为服务器提供48 Wh铅酸电池。 24 Wh电池将使服务器最多保持6个小时的时间,也就是说,它将每天晚上关闭,尽管在不同的时间(取决于月份)。

根据《低科技》杂志的报道,总的来说,有些网站不需要在夜间访问,因为访客数量很少。例如,如果是地区性城市出版物,则其他时区的访问者不会去,而只有本地居民才去。

也就是说,对于交通流量和正常运行时间不同的站点,需要使用不同容量的电池和不同尺寸的太阳能电池板。





作者计算出生产太阳能电池板本身需要多少能量(实际能量),如果将其除以预期的10年使用寿命,则可以获取多少能量。



因此,可以计算化石燃料的类似物,该化石燃料用于板的生产和操作。在Low-tech Magazine上,事实证明,在运行的第一年,他们的系统(50 W面板,86.4 Wh电池)“产生”了约9千克的排放物或相当于燃烧3升汽油的量:与乘用车时的排放量大致相同,为50公里的进度。



如果服务器不是由太阳能电池板供电,而是由通用电网供电,则等效排放量似乎要低六倍:1.54千克(替代能源和核电站在西班牙能源中所占的比例很高)。作者写道,但这并不是一个完全正确的比较,因为它考虑了太阳能基础设施的已实施能源,但没有考虑到整个能源网络的指标,即其建设和支持的成本。

进一步改进


在过去的时间里,已经进行了许多优化,这些优化降低了服务器的功耗。例如,在某个时候,开发人员注意到RSS提要的一种不正确实现产生了11.15 TB的总流量中的6.63 TB,这每隔几分钟就会提取一次内容。修复此错误后,服务器的功耗(不包括能量损失)从1.14瓦降至约0.95瓦。增益看似很小,但0.19瓦的差异意味着每天4.56瓦时,相当于超过2.5个小时的电池寿命。

在第一年,效率仅为50%。在对电池充电和放电(22%)以及将电压从12 V(太阳能光伏系统)转换为5 V(USB)时观察到损耗,其中损耗高达28%。开发人员承认他没有最佳的电压转换器(不带内置USB的控制器),因此您可以优化这一时刻或切换到5V太阳能装置。

为了提高能量存储效率,可以用更便宜的锂离子电池代替铅酸电池,因为锂离子电池的充电/放电损耗较小(<10%)。现在,设计者正在考虑一种紧凑的系统,以压缩空气的形式存储电能(CAES),具有十年的使用寿命,这意味着更少的碳足迹。


压缩空气中的紧凑型蓄能器,来源

我们正在考虑安装额外的风力涡轮机(可以由木头制成),并安装太阳能跟踪器以将太阳能电池板转向太阳。追踪器可让您将发电量提高30%。



提高系统效率的另一种方法是扩展系统规模。在服务器上增加更多网站并运行更多服务器。这样,每个站点的能源消耗将减少。


太阳能托管公司。插图:Diego Marmolejo

如果您用太阳能电池板覆盖公寓的整个阳台并开设一家太阳能网络托管公司,那么每个客户的成本将大大低于单个网站:规模经济。

总的来说,该实验表明,在一定的限制下,计算机基础设施可能会很好地适用于可再生能源。

从理论上讲,如果您在世界其他地方进行镜像,则这样的服务器甚至可以不用电池。例如,在新西兰和智利放置镜子。晚上在巴塞罗那,那里的太阳能电池板将工作。

Source: https://habr.com/ru/post/undefined/


All Articles