为什么值得在Raspberry Pi4上安装64位操作系统

图片

在软件公司工作的好处之一是您经常有机会测试新的硬件原型。但是,在这种情况下不是-我购买了Raspberry Pi4,因为它非常便宜!

Raspberry Pi4具有四核ARM Cortex A72,高达4 GB的内存和一个千兆位以太网端口-所有这些仅售35美元。

在Raspberry Pi4上有OS Raspbian(基于Debian)和成品库,因此我将其放入SD卡中以加快启动速度。我搜索了syslog,发现内核和所有用户程序都被编译为armv7-也就是32位内存。

我知道Raspberry Pi4支持64位,所以我不想在其上运行32位OS。我拿了另一张存储卡,然后在上面放了Debian。Debian不包含任何多余内容,编译为aarch64-表示64位内存。

下载了64位操作系统后,我开始对它在32位环境下的性能有很大的兴趣,因此我进行了一些测试。

综合速度测试


对我而言,第一件事就是旧的磨石测试,自测试开始以来就存在。该程序写于1988年,它处理数学计算。不可能模拟当前负载,我们只能使用它来维持与旧硬件和程序的某种连通性。



通过计算哈希可以更好地模拟现代摘要应用程序,因此我想使用SHA1进行测试。不幸的是,sha1sum实用程序是在不支持libssl或加密内核功能的情况下编译的,因此我必须从源代码进行编译。

为了避免I / O的瓶颈,我使用truncate -s 2GB选项计算了2 GB文件的哈希,因此该卡没有输入或输出:



SHA1比dhrystone更现实的测试,因为该算法被用于许多应用程序-torrents,git等。

内存


一个64位系统提供对每个读/写8字节内存的访问。我编写了一个简单的程序,该程序放置了一个大缓冲区-她先编写然后读取。为了保证实际的内存分配,我使用了mlock()。在此测试中,缓冲区容量为2 GB:3 GB的缓冲区在64位模式下工作,而在32位模式下,它会产生“内存不足”错误。



音频编码


我注意到许多Raspberry Pi4用户将计算机用作媒体中心,因此我开始使用两种最受欢迎​​的编解码器对音频进行编码。

我对平克·弗洛伊德(Pink Floyd)的``回声''构图进行了编码,因为它的轨迹相当长,您可以从中获得测量值。为避免I / O延迟,将源文件和目标文件存储在ramfs上:





网络速度测量


使用Raspberry Pi4的另一种选择是作为VPN或防火墙。我不建议您将此类系统用于此类目的,但是许多人仍然具有较慢的Internet连接(小于100 MB),因此他们可能不会注意Raspberry Pi4的缓慢操作。

第一个问题:Raspberry Pi4可以处理多少流量?我们需要在没有物理接口限制的情况下测量计算机的净网络能力,因此我启动了两个容器之间的iperf3会话。但是,容器通过一对veth交换数据,而veth通过虚假卸载来加快流量。

只需简单地拒绝对IP校验和进行计算就可以卸载计算,并通过拒绝分段和重组流量来减轻TCP分段的负担:只需将大量的64K数据直接传输到内存即可。

为避免此类情况,我禁止使用

ethtool 命令-K veth0 tx off rx off tso off gro off gso off 卸载



防火墙功能


最快的网络设备能够-丢弃部分流量,而最快的方法是通过TC规则。为了不达到最大可能的速度,我使用了最小的以太网帧大小64b。



尽管两个系统均未达到最大传输速度(1.5 Mb / s),但64位内核的速度略高于32位内核。如果要将Raspberry Pi4用作防火墙,请确保使用64位内核。

虚拟专用网


Raspberry Pi4的另一个常见用例是VPN服务器,或更确切地说是OpenVPN。我更喜欢WireGuard,所以我检查了这两个程序,因为它们都易于安装:



正如预期的那样,OpenVPN比WireGuard慢10倍。出乎意料的是,OpenVPN以32和64 bps的相同速度工作。在两种情况下,WireGuard都几乎使千兆位端口饱和-也许我们已达到NIC限制。

为了确定WireGuard是否可以更快地工作,我对两个不使用物理以太网的容器进行了另一项测试。唯一的问题是客户端和iperf3服务器都在Raspberry Pi4上运行,并加载了两个内核。



不出所料,受CPU限制,OpenVPN和32位WireGuard的性能较差,而64位WireGuard的性能更好。

结论


我经常读诸如“这是不值得的”,“您将赢得几毫秒”之类的语句,仅仅是因为Raspberry Pi4不是一台功能强大的计算机。这不是真的!正如任何参与嵌入式设备的人都知道的那样,慢速硬件软件优化比快速硬件更重要。

我已经知道64位操作系统可以在Raspberry Pi4上更好地工作,但是我不知道要好多少。所以我做了所有这些测试。我希望你喜欢它!

All Articles