树莓派 智能家居_树莓派 智能家居 笔记
信息来源:互联网 发布时间:2024-11-06
WordPress 是使用 PHP 语言开发的博客平台,用户可以在支持 PHP 和 MySQL 数据库的服务器上架设属于自己的网站,也可以把 WordPress 当作一个内容管理系统来使用。
机器之心编译机器之心编辑部撸代码、写博客、动手做点好玩的东西是一个码农常见的进阶方式很多大牛都有写博客的习惯,动手能力更是不在话下今天介绍的这位机器学习爱好者 WILL HO 也喜欢写博客,他不仅自己注册了一个博客网站,还搭了一个 28 核的树莓派集群来实现自托管。
在此过程中,他学到了 Linux、Docker、Docker Swarm、Kubernetes、DNS、TLS 和网络拓扑等很多方面的技能
在最新的一篇博客中,WILL HO 介绍了自己搭建的 28 核树莓派集群这个集群名叫 Kraken,用到了 7 个树莓派 3B前面已经说过,WILL HO 搭建树莓派集群是为了实现自托管,也就是托管自己用 Wordpress 搭建起来的博客网站。
WordPress 是使用 PHP 语言开发的博客平台,用户可以在支持 PHP 和 MySQL 数据库的服务器上架设属于自己的网站,也可以把 WordPress 当作一个内容管理系统来使用在此之前,他也曾搭建过一个名为 Octopi 的树莓派集群(一个树莓派 1B + 和 4 个树莓派 1B),但很快他就发现,在这个集群上运行 Wordpress 有很大的性能瓶颈,打开一个新的 Wordpress 博客的单页加载大约需要 10 秒!
为了解决这一瓶颈,WILL HO 下决心对 Octopi 进行升级,于是就有了我们今天文章的主角——Kraken在以下的篇幅中,WILL HO 介绍了自己搭建 Kraken 的过程如果你也有建树莓派集群的需求或者想学学 Docker 等工具,可以参考作者的方式搭一个自己的集群。
Kraken 概况Kraken 由 7 个树莓派 3B 组成,由一个 USB 充电器供电WILL HO 本打算构建一个由 8 个节点组成的树莓派集群,但消费级的网络交换机上的最大端口数为 8 个,能容纳 7 个节点和一条到路由器的电缆。
另一种选择是使用具有 16 个端口的商业级网络交换机,但这显然是不可能的,看看价格,劝退。用树莓派 3B 搭建的 Kraken 集群规格如下表:
所需的零件清单如下表:
值得注意的是,作者选择了 32GB MicroSD 卡作为第一个节点的存储,并希望它成为 Docker swarm 设置的主节点。作者预计,还需要额外的存储空间来构建和部署 Docker 映像。
Kraken (上) 和 Octopi (下)Kraken 千兆升级作者发现自己经常在 Raspberry Pi 3B 的内置以太网端口上达到 100Mbps 的带宽限制在大型文件的传输过程中,传输速度甚至徘徊在令人沮丧的 8MB / 秒。
受到 Jeff Geerling 的博客的启发,作者发现,使用 USB 千兆以太网适配器可以将带宽提高到 200Mbps 以上于是,他买了一堆便宜的 USB 千兆以太网适配器和一个千兆交换机,开始升级
便宜的 USB 千兆以太网适配器。附加零件清单:
升级后,Kraken 看起来是这样的:
Gigabit Kraken, Octopi and my cable management nightmare如果所有成本都算下来,打造这个 Kraken 集群总共花了 508.84 美元基准判别在升级之前运行 iperf,可以看到最大带宽是 93.1 Mbps。
在安装千兆适配器之后运行 iperf,可以看到最大带宽为 224 Mbps!有了这个简单的模块,每个节点就获得了 131Mbps 的带宽然而,这些仍然只是理论上的速度,因为典型的使用场景包括将从网络接收到的数据写入磁盘,但是 iperf 只从网络接收数据,而不将数据写入磁盘。
一些注意事项即使在 Web 服务中,也不大可能持续地充分利用此新带宽它主要有助于在首次加载时更快地传输大型资源(如图像数据),之后,用户的浏览器会缓存图像此外,Raspberry Pi 1 至 3 型号中臭名昭著的共享 USB 2.0 总线也限制了实际带宽。
对于未初始化的用户,单个 USB2.0 总线的 480Mbps 理论单向宽带在以太网端口、SD 卡插槽和所有 USB 端口之间共享。带宽分布如下所示:
尽管表格中的数字给人的印象是:这次升级没有带来性能上的提升但它们代表的是最坏的情况通常情况下,人们期望在 web 服务器上进行的主要是读操作,而很少进行写操作在现实世界中,带宽分配通常应如下所示:
以上是作者对第二个树莓派集群的升级操作,但是如果你已经熟悉 Docker 系统,或者正在寻找高性能的家庭设置,在此不建议使用此教程为何选择此集群?如果你对 Docker 和 Kubernetes 感兴趣,作者强烈建议你上手搭个这样的集群。
对此,他给出了两个理由:首先,该集群与官方支持的最新版本 Docker 映像兼容此外,Raspberry Pi 3B 在 armv7 CPU 架构上运行最新的 Arm 处理器(arm64)向后兼容在 armv7 上编写和编译的所有代码。
相反,arm64 处理器不向后兼容 armv6 处理器(Raspberry Pi 1 和 2),因此它们正在被社区淘汰其次,对于大多数对带宽要求较高的应用程序,该集群将是理想的选择,例如托管你自己的博客,文件同步服务,媒体库管理器,记笔记应用程序等。
考虑到 Raspberry Pi 3 中的 USB 2.0 总线瓶颈,如果你的应用程序需要大量持续的写入(例如对视频进行编码),这个集群的性能可能无法达到要求总而言之,构建 Raspberry Pi 3 集群是学习 Docker 和集群的最经济有效的方式,并且在可预见的将来仍将如此。
因此,如果你只是想接触 Docker,强烈建议你尝试一下
免责声明:本站所有信息均搜集自互联网,并不代表本站观点,本站不对其真实合法性负责。如有信息侵犯了您的权益,请告知,本站将立刻处理。联系QQ:1640731186

