最近我利用业余时间完成了 QuickBox ARM 的移植和测试,该代码主要移植自 QuickBox Lite。QuickBox CE本身也可以通过修改软件源的办法运行于 ARM 平台,但是由于稳定性以及较高的面板负载,实用性并不是很好。QuickBox Lite 在 tautcony 的帮助下,重构了部分面板代码,降低了面板的资源消耗,使得这个项目在移植到 ARM 平台后依然有比较不错的表现 。由于测试过程主要使用 BPI M2U/M2B 作为测试平台,因此在这里简单的写一下搭建 Seedbox 的方法以及性能测试。
Contents
搭建
BPI 虽然有很多带有 SATA 接口的产品,但是例如 M3 这种产品是使用 USB 转换成 SATA 的。因此速度会受到很大限制,比较推荐一些有原生 SATA 接口的产品。在选择系统的时候,如果需要使用 noVNC 或者桌面,请选择桌面系统,标有 lite 的系统缺少 OPENGL 支持,因此可能在一些软件使用过程中会遇到问题。此外 QuickBox ARM 当前支持的是 armhf 的平台,arm64 会有另外的项目提供支持。
下面以 M2B 为例,使用 “2018-01-04-ubuntu-16.04-mate-desktop-v1.0-bpi-m2u-sd-emmc.img” 作为基本系统。首先参考宅猫的Blog将系统设置为从SD卡引导HDD启动。这样就可以更好的利用 HDD 的高 IO 提升 Seedbox 服务的性能。
安装过程可以直接参考 README 的叙述,安装选项的说明可以参考 WIKI。考虑国内使用默认的安装源安装软件比较慢,建议使用 proxychain-ng 做代理加速,或者提前更换软件源。在完成系统更新后,通常 QuickBox ARM 需要10-20 分钟的安装时间,该时间主要受到网络状况影响。
测试
首先是简单的网络吞吐测试,以10线程测试TCP吞吐性能:
上行: [ ID] Interval Transfer Bandwidth [SUM] 0.0-30.1 sec 2951 MBytes 822 Mbits/sec 下行: [ ID] Interval Transfer Bandwidth [SUM] 0.0-31.9 sec 3562 MBytes 935 Mbits/sec
可以看到,BPI 在网络吞吐能力上是能够接近千兆的。
接下来是磁盘性能,我们直接使用 box iotest 命令,该命令等同于 CrystalDiskMark 的默认测试基准。
+-----------+-----------+------------+------------+-------------+ | Test Item | Read IOPS | Read Speed | Write IOPS | Write Speed | +-----------+-----------+------------+------------+-------------+ | Seq-Q32T1 | 904 | 113 MB/s | 266 | 33 MB/s | | Seq | 111 | 111 MB/s | 31 | 31 MB/s | | 4K-Q32T1 | 228 | 915 KB/s | 241 | 965 KB/s | | 4K | 133 | 535 KB/s | 172 | 690 KB/s | +-----------+-----------+------------+------------+-------------+
可以看到 BPI 的 SATA 接口有着不错的性能。
接下来直接安装常见的客户端,我选用基于 libtorrent-rasterbar 的 qBittorrent 和基于 libtorrent-rakshasa 的 rTorrernt。
qBittorrent: 下载:25.4 MiB/s 上传:22.5 MiB/s rTorrent: 下载:19.6 MiB/s 上传:20.5 MiB/s
在使用过程中,可以比较明显的观察到 BPI 的 CPU 有较高的负载,而网络和硬盘均未达到瓶颈。也就是说,受限于 CPU 性能,BPI 在 BT 环境下大约能达到 200 Mbps左右的速度,这足够对付常用的家庭宽带。
总结
通过安装 QuickBox ARM,BPI 可以很方便的变成一台家庭下载机,由于该项目提供了 4 种常用 BT 客户端基于最新源码的的预编译包,因此可以很方便的进行安装,而不是消耗大量时间来编译最新的源码。未来如果有合适的高性能 ARM64 产品,我也会尝试继续移植并且测试,我相信,在拥有更高性能的平台上,这些客户端会有更好的表现。