Marginalia 搜索引擎从 Docker 迁移到 systemd 的运维实践
来源:marginalia.nu — 2026-07-22
📋 概述
独立搜索引擎 Marginalia 的作者详细记录了将整个系统从 Docker Compose 迁移到裸 systemd的原因和过程。在 NUMA 架构的双路服务器上,Docker 的网络模型和 IP 管理带来了严重的运维痛点。迁移后构建时间从数分钟降至 2-3 秒,服务发现更稳定,且新增了「未排名查询」端点使爬取速度翻倍。
🔑 核心要点
- NUMA 双路服务器上 Docker 的跨 CPU 内存访问导致数据库和索引性能下降,systemd 部署可直接绑定 CPU 和内存节点
- Docker 的 ipvlan 网络模型不能设置防火墙规则,公网 IP 上的服务直接暴露——迁移到 systemd 使用 network namespace 完美解决
- 新增未排名查询端点:对仅需布尔交集匹配的查询(如 site: + links:),跳过昂贵的排序步骤
- 设计了一种多分区光标(格式如 28mbshfptkj.6ijoop7xty...),允许在多个索引分区间实现无状态分页
- 迁移的隐性收益:构建时间从数分钟降至 2-3 秒(不再需要 JIB 构建 Docker 镜像),部署速度大幅提升
💡 金句
There is no magic in docker, it's just cgroups and namespaces all the way down.
👍 0
👎 0
← 返回 Lobsters 首页