在树莓派上托管 Discourse?

依我之见,你最好等待最终的 Raspberry Pi 5。如果将 Pi 从 2 代到 3 代再到 4 代的性能进步趋势外推,它应该具备足够的性能来运行 Discourse。

我也不确定目前的 x86(x64?)依赖关系是否可解决,但将其作为长期规划来研究并非坏主意。

1 个赞

由 64 位四核 1.5GHz 的树莓派 4 组成的集群,配合 USB 3.0 磁盘(约 300MB/s 的存储速度)或外部对象存储(如 S3 或 GCP),并在前端部署 CDN 以面向匿名用户,这或许是一个可行的平台替代方案 :slight_smile: 未来拭目以待!

1 个赞

这个数字本身并没有太大意义。

你并未说明使用的是哪款 microSD 卡,但其性能数量级与 Lexar Professional 1800x 相近,该卡可维持约 300 MB/s 的连续读取速度和接近 250 MB/s 的写入速度。不过,对于 microSD 卡而言,连续读写并非瓶颈所在;要真正了解多用户同时访问数据库和本地资源时的实际表现,需要关注随机读写性能。

现代 SSD 的连续读取速度通常在 500 MB/s 以上,连续写入速度也在 475 MB/s 以上,与上述数值相差不大。然而,在随机读写性能方面,差距极为显著:同一款 SSD 在 4KiBQ8T8 测试中可轻松达到 400 MB/s,而 Lexar 卡则跌至个位数,约为 15 MB/s。随机写入性能更差,SSD 仍能维持高达 300 MB/s 的速度,而 microSD 卡则骤降至个位数,仅约 2 MB/s。

我非常推崇树莓派(rPi),并在多个场景中使用它们,但它们目前距离我们真正需要的性能水平还有很长的路要走。

1 个赞

这是一张在瑞典售价 20 美元的闪迪 64GB 存储卡,据我所知其等级为 A2。我只是想证明,纯顺序读写速度并没有你描述的那么差 :slight_smile:

如果即使通过 USB3 端口连接外部 SSD,它在树莓派上仍无法运行,我推测将数据库外部化应该能解决这一特定瓶颈。不过我可能有些偏见,因为我确实很期待用树莓派 4 上现已真正具备的 1Gbps 网卡组建 ARM 集群。此外,我也喜欢挑战那种“这行不通”的普遍心态 :wink:

1 个赞

只要投入足够的时间、金钱和资源,任何事情都能让它运转起来。

过去几年里,要求在一块树莓派上运行 Discourse 的请求,通常来自那些已经拥有树莓派、且不想在硬件之外再花任何钱的玩家。这正是我们在这里探索的内容。

一旦你开始外接 SSD,并将数据库迁移到其他系统,那就根本不是在讨论在树莓派上托管 Discourse 了。 :wink:

1 个赞

没错。我同意,通常你还是物有所值的🙂

使用 Raspberry Pi 4(4GB 或 8GB 内存):wink:然后从 Amazon、Ebay 等平台购买一张工业级 MicroSD 卡。
按照来自该网站的内容将 Docker 写入 SD 卡:https://blog.hypriot.com/:smiling_face_with_three_hearts::slightly_smiling_face:,具体前往“下载”部分,选择最新版本。
将镜像写入 SD 卡后,插入 Raspberry Pi 并通过 SSH 连接(Docker SSH 的用户名和密码为:“pirate” 和 “hypriot”,即用户:pirate,密码:hypriot)。连接 SSH 后,显然需要通过 sudo raspi-config 更改凭据以符合你的需求,然后重启 Raspberry Pi。
重启后,再次通过 SSH 连接,并按照以下指南安装 “Discourse”:https://linoxide.com/how-tos/install-discourse-docker-container/:wink:。显然,你将从第 2 步开始,因为 Docker 已在最初安装好了。

祝玩得开心!

2 个赞

你好,Massym,

我按照您的说明安装了 Hypriot 等工具,但遇到了以下错误:

  $ ./launcher bootstrap app
  standard_init_linux.go:211: exec user process caused "exec format error"
  您的 Docker 安装无法正常工作

  参见:https://meta.discourse.org/t/docker-error-on-bootstrap/13657/18?u=sam

您有什么想法吗?

谢谢。

1 个赞
2 个赞

非常感谢你迅速回复,Rafael。

显然我误解了 Massym 在 Raspberry Pi 4 上成功运行 Discourse 的说法。重读他的帖子后,我发现他并没有明确这样断言。这对我来说是时间的浪费,但至少也是一次学习经历。

Discourse 中具体是哪个组件不受支持?我相信很多人和我一样都渴望让它顺利运行。

谢谢。

1 个赞

我猜 Discourse 可能正在使用为 x86_64 构建的镜像,包括 Redis、Ruby 和 PostgreSQL。

1 个赞

是我们在服务器上运行 JavaScript 的 V8/MiniRacer 库。

既然苹果推出了 M1 处理器系列,我相信我们很快就能在 ARM 架构上使其正常运行。

11 个赞

很期待看到它顺利运行。我其中一个基于 Discourse 的论坛是我迁移到树莓派 4 集群前的最后一项待办事项,该集群的能耗远低于基于 Intel 的服务器。

2 个赞

顶一下,v8 gem 在 ARM 架构上有什么进展吗?我尝试编译镜像,但总是卡在这个 gem 上。它有点复杂,失败的主要原因是脚本会尝试下载 x86_64 工具(用于构建)并在 ARM 上运行它们。

1 个赞

参见:

3 个赞

ARM 架构在服务器端(以及在 Ruby 中)将很快取得巨大进展,这要归功于苹果令人惊叹的 M1 芯片终于出现在真正的笔记本电脑中。

但 Raspberry Pi 本身——即使是大幅改进的 4 代——作为服务器也显得严重性能不足。根据这篇帖子以及 Speedometer 2.0 的结果……

3B+ Buster 32 位内核
9.49/9.66/9.46 = 9.54 Chromium

4B4 Buster 64 位内核(32 位结果相同)
17.2/17.0/17.1 = 17.1 Chromium

OnePlus 7 Pro 智能手机(Snapdragon 855,8GB RAM,Android/Oxygen OS 10)
36.3/35.9/36.8 = 36.3 Chrome

HP Chromebook x2(双核 M3-7Y30)
68.2/68.6/68.0 = 68.3 Chrome OS 78

Legion Y520 入门级游戏笔记本(i7-7700HQ Win10x64)
87.4/86.8/87.3 = 87.2 Chrome

基于这些数据,我推测,如果未来的理论版 Raspberry Pi 5 能够……

  • 至少将性能提升至 Pi 4 的两倍
  • 配备某种迷你 M.2 SSD 作为存储,而非 SD 卡

……那么它或许有可能成为承载极低流量 Discourse 论坛的可行服务器?

3 个赞

敬请期待,我曾在树莓派 4 上运行过其他 Rails 应用,对性能感到满意,但必须承认,那些应用比 Discourse 简单得多。

3 个赞

现在支持此功能

7 个赞