Kino 是一款高性能的 Ractor Web 服务器,支持 Ruby 4.0+。Ruby 线程无法并行运行代码,因此生产环境会为每个核心 fork 一个进程,并为每份内存复制付费。Kino 在一个小进程中在每个核心上运行你的代码。一个 Rust(tokio + hyper)前端负责网络;并行 Ractor 工作器运行你的 Rack 3 应用,线程回退模式则运行其余所有内容,包括 Rails。速度快。在真实的 8 核 服务器上,所有 Kino 模式的性能比 Puma fork 集群在 I/O 轻量端点上快 1.5‑2 倍。Ractor 模式在纯 CPU 任务上也能赢,提升 30%+。下面是基准测试。内存占用仅为一小部分。简易基准 Ractor 应用约 7 倍,而在回退线程模式下为 Rails 的 Puma 集群约 4 倍 的内存更少。无须 fork,仍然并行。
Ractor 模式在同一小进程中将 CPU 工作速度提升 5 倍以上,优于 Kino 自身的 GVL‑bound 线程模式。生产环境管道已包含:优雅下线、崩溃监控与重启、带 503 backpressure 的有界队列、请求超时、强化入口(slowloris 与 TLS‑handshake 超时、连接与主体大小限制)、on_error 钩子用于错误追踪器、TLS(rustls)、实时统计、异步访问与应用日志。它会告诉你原因。
Kino 的 CLI 与配置 DSL 与 Puma 类似;如果你能运行 Puma,就能运行 Kino。
来源: Hacker News · 由HeadlinesBriefing整理摘要