☰
forkd快速入门教程:一条命令fork出你的前10个microVM沙箱(附quickstart与doctor自检)
2026/9/29 22:59:14 网站建设 项目流程

forkd快速入门教程:一条命令fork出你的前10个microVM沙箱(附quickstart与doctor自检)

【免费下载链接】forkdFork() for AI agent microVMs. Spawn 100 children in ~100ms from a warm parent; BRANCH a live VM in ~150ms. KVM-isolated, snapshot CoW.项目地址: https://gitcode.com/gh_mirrors/fo/forkd

forkd 是一款面向 AI Agent 扇出场景的microVM 沙箱运行时:它能从一个"暖启动"的父快照 fork 出 100 个 KVM 隔离的 microVM 沙箱,总耗时仅约 101 ms,还能在 ~150 ms 内 BRANCH 一个运行中的 VM。本教程带你用一条命令完成首次 fork,并附上forkd doctor自检方法。

为什么选择 forkd

传统上,给每个 AI Agent 启动一个虚拟机要经历"冷启动":加载内核、初始化系统、导入依赖,动辄数秒到数十秒。forkd 换了一种思路:

  • 父 VM 只启动一次:把 Python 运行时、依赖库、甚至 ML 模型全部预热到内存,然后暂停并落盘成快照
  • 子 VM 共享内存:每个 child 通过mmap MAP_PRIVATE映射父快照,内核在页级别做写时复制(CoW),子 VM 之间的内存增量实测只有0.12 MiB/child
  • 每个 child 仍是独立 microVM:KVM 硬件隔离、独立网络 namespace、独立 cgroup 内存配额,安全边界不妥协

环境要求与安装

forkd 快速入门只需要满足以下条件:

项目要求
系统x86_64 Linux,Ubuntu 22.04 或更新
虚拟化支持 KVM(裸金属或已开启硬件虚拟化)
内核基础 fork 任意 KVM 内核;live BRANCH 需 ≥ 5.7

无需 Rust 工具链,下载预编译二进制即可:

git clone https://gitcode.com/gh_mirrors/fo/forkd cd forkd # 或使用官方 release tarball 直接解压到 /usr/local/bin/

一条命令完成首次 fork:quickstart

这是整个入门流程中最关键的一条命令:

sudo -E forkd quickstart

quickstart子命令实现了"零到首次 fork"的全自动流程,等价于把主机自检、环境修补、快照构建、扇出四步串成一条命令。它会依次完成:

  1. 主机预检:检查 KVM、Firecracker、内核镜像等前置条件
  2. 自动修补:缺什么补什么(下载 guest 内核、创建 tap 设备、准备 N 个 per-child netns),每一步都需要你确认,加--yes可跳过交互
  3. 构建父快照:优先用本机 Docker 从python:3.12-slim现场烘焙(保证 vmstate 与本机 Firecracker 版本匹配);没有 Docker 时自动从 Hub 拉取预烘焙快照
  4. fork 出 10 个 microVM:默认-n 10,每个 child 约 10 ms,并打印逐 child 计时

常用参数:

  • -n <N>:fork 多少个 child(默认 10)
  • --image <image>:父快照的 Docker 镜像(默认python:3.12-slim)
  • --yes/-y:非交互场景自动确认所有修补步骤

流程结束后,quickstart 会直接告诉你下一步可以玩什么:扩大到 100 个、在 child 里执行命令、查看本地快照列表。

forkd doctor 自检:出问题时先跑它

任何一步觉得不对劲,先跑:

forkd doctor

doctor 会执行 17 项检查(KVM、硬件虚拟化、cgroup v2、IP 转发、tap 设备、netns、Firecracker 二进制及版本、Docker daemon、快照目录与磁盘空间、内核镜像、controller 可达性,以及 live-fork 所需的uffd_wp、memfd_create、hugepages),每一项不通过都会附带具体修复提示,而不是给你一个模糊的错误码。

进阶操作:验证速度与继续扇出

用 bench 探测本机真实延迟

forkd bench --tag quickstart --n 5

输出包括 spawn、exec 往返、branch、fanout 各项耗时,一眼看清 forkd 在你自己的硬件上跑出了什么速度。

继续扇出与和 child 对话

# 一次 fork 100 个,每个限制 256 MiB 内存 sudo -E forkd fork --tag quickstart -n 100 --per-child-netns --memory-limit-mib 256 # 和其中一个 child 里的暖 Python 直接对话(~1 ms 往返) sudo forkd eval --child forkd-child-42 -- "numpy.zeros(100).sum()"

官方实测性能参考

同一台主机上 spawn 100 个沙箱(每个跑import numpy并执行一次计算):

后端N=100 总耗时每沙箱内存增量
forkd101 ms0.12 MiB
Firecracker 冷启动759 ms84 MiB
Docker (runc)335 s4 MiB

下一步学习路径

  • 完整快速开始与手动分步流程:README.md 的 Quick start 章节
  • 快照 Hub(forkd pull / pack / push):docs/HUB.md
  • REST API 参考:docs/API.md
  • 框架集成示例(CrewAI、AutoGen、Swarm 等):recipes/
  • quickstart 命令实现源码:crates/forkd-cli/src/main.rs
  • doctor 自检实现:crates/forkd-cli/src/doctor.rs
  • 压测方法论与完整数据:bench/

一条sudo -E forkd quickstart,十来个 KVM 隔离的 microVM 沙箱就都热起来了——这就是 forkd 快速入门的全部核心。

【免费下载链接】forkdFork() for AI agent microVMs. Spawn 100 children in ~100ms from a warm parent; BRANCH a live VM in ~150ms. KVM-isolated, snapshot CoW.项目地址: https://gitcode.com/gh_mirrors/fo/forkd

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询