大家好,分享我们最近在做的开源项目 pVisor。
做代码 Agent 和批量评测时,执行环境的成本很容易累积:不同任务的镜像越存越多,多个沙箱同时运行又吃掉不少内存。我们希望保留 Docker 的使用习惯,同时尝试降低这些资源开销。
pVisor 支持直接使用 OCI 镜像,通过 run、build、exec 等命令操作,无需 Docker daemon。每个“容器”运行在独立的 Linux VM 中,拥有自己的内核。
实现主要用 Rust,VM 层对接 Linux KVM 和 Apple Silicon 的 Hypervisor.framework,文件访问使用 virtio-fs。镜像侧采用压缩内容池和按需读取,减少完整解包副本;内存侧提供可选的重复内容共享。
目前有两组数据:
| 测试 | 对照 | pVisor 优化后 |
|---|---|---|
| 四个镜像的共享磁盘库存 | Docker:363.16 MiB | 94.29 MiB,减少 74% |
| 四台 VM 的重复内容内存负载 | pVisor 关闭共享:398.92 MiB | 开启物理共享:149.14 MiB,减少约 63% |
磁盘对照各测三次;内存是每种配置一次的预检,不能外推为真实 Agent 的收益。独立 VM 也有成本,当前部分启动耗时和实例内存开销高于 Docker。测试条件和读取开销都放在了镜像实验与内存实验中。
安装可以选 pip(Python 3.10+):
pip install pvisor-sandbox
或 Homebrew:
brew tap DeepLink-org/formula https://github.com/DeepLink-org/Formula.git
brew install DeepLink-org/formula/pvisor
运行第一个 VM 沙箱:
pvisor run --rm alpine:3.20 echo hello
支持 Linux x86_64 和 Apple Silicon macOS。Linux 需要 KVM 权限及 user namespace;首次运行需要访问镜像仓库,具体见安装指南。
目前还是开发者预览,Docker 命令仅支持子集,未实现 Docker Engine API,暂不支持 Compose。欢迎拿实际 Agent 或评测任务试跑,也想和做 Rust 虚拟化、文件系统的朋友交流:这些资源优化在你的负载下是否有用,哪些兼容性问题最影响接入。
项目:https://github.com/DeepLink-org/pvisor
评论区
写评论还没有评论