CubeSandbox 内存开销实测方法5MB 基础足迹的官方测量指南【免费下载链接】CubeSandboxInstant, Concurrent, Secure Lightweight Sandbox for AI Agents.项目地址: https://gitcode.com/GitHub_Trending/cu/CubeSandboxCubeSandbox 是腾讯云开源的面向 AI Agent 的高性能安全沙箱服务基于 RustVMM KVM 构建可在 60ms 内创建硬件隔离的沙箱且单实例内存开销低于 5MB。很多用户在评估沙箱产品时都会问一个问题5MB 内存开销这个数据是怎么测出来的本篇就带你走一遍 CubeSandbox 官方的内存开销测量方法从零开始记录基线、分批创建沙箱、计算单实例均摊开销让你在自己的机器上也能复现这个数字。先搞清楚内存开销到底指什么在测量之前必须先明确内存开销的口径否则数字会差出几倍甚至几十倍 。CubeSandbox 官方宣传的5MB是一个特定口径Hypervisor-only 开销——即只计算虚拟化管理器VMM本身占用的内存不含Guest 操作系统和用户工作负载的内存。作为对比传统 QEMU 虚拟机的同口径开销约 30MBCubeSandbox 的内存开销只有它的 1/6。那为什么能做到这么低核心是两件事CoW写时复制 内核页共享2GiB 规格的沙箱空载时并不预占满 2GiB内存只有页面被实际写入时才按需分配Rust 重构 深度裁剪的运行时VMM 自身被压缩到极小的常驻内存。从官方内存开销柱状图可以看到无论 1c2g 还是 16c32g 规格VMM 自身的 Overhead橙色部分始终只占极小一截大头都是 Guest 自身的按需内存 需要注意你在宿主机上用free测到的每沙箱均摊开销官方实测约 21~26MB/实例和这里的 5MB 不冲突——前者包含了 Guest 内核、agent 等基础常驻页后者只统计 VMM 进程本身。两个数字各说各的口径。官方测量方法三步测出单实例内存开销官方基准测试见 docs/blog/posts/2026-06-01-cubesandbox-perf-benchmark.md 第 3.3 节的测量思路非常直白清空机器 → 分批启动沙箱 → 记录内存变化核心公式只有一条单 VM 均摊开销 (当前已用内存 − 基线已用内存) ÷ 沙箱数量步骤一记录空机基线先确认集群里没有任何残留沙箱然后记录空机内存和 shim 进程数cubemastercli list # 确认 SANDBOX_COUNT 为 0 free -h # 记录空机内存占用基线 ps --no-headers -C containerd-shim-cube-rs | wc -l # shim 进程数应为 0步骤二分批创建沙箱逐批记录内存使用仓库自带的压测工具 examples/cube-bench/create-only模式只创建、不销毁让沙箱保持存活。先构建make -C examples/cube-bench。然后按可用内存从小往大累加每批之后立即free -h记录export E2B_API_URLhttp://你的服务器IP:3000 export E2B_API_KEYe2b_000000 export CUBE_TEMPLATE_ID你的模板ID # cubemastercli tpl list 获取 ./bin/cube-bench -c 50 -n 100 -m create-only free -h # 累计 100 ./bin/cube-bench -c 50 -n 200 -m create-only free -h # 累计 300 ./bin/cube-bench -c 50 -n 200 -m create-only free -h # 累计 500 ./bin/cube-bench -c 50 -n 500 -m create-only free -h # 累计 1000⚠️安全警告官方原文强调每批创建前务必先free -h确认剩余内存充足一次创建过多会触发 OOM Killer轻则杀进程重则打坏运行环境需要重新部署。步骤三计算单实例均摊开销拿每一批的内存增量除以沙箱总数即可。以下是官方在裸金属节点96 核 / 375GiB2 vCPU / 2GiB 规格沙箱的实测结果存活沙箱数系统可用内存单 VM 均摊开销0基线359.5 GiB—100357.4 GiB~21.5 MB300352.5 GiB~23.8 MB500347.3 GiB~25.0 MB1000334.3 GiB~25.7 MB可以看到均摊开销从 21MB 缓升至 26MB始终稳定在数十 MB 量级——1000 个 2GiB 规格的沙箱只消耗约 25GiB 物理内存这正是 CoW 按需分配的效果。测量前必做的两项配置新手实测最容易踩的两个坑官方文档都给了标准答案调大 host.quota压测会创建数百个沙箱默认配额下 CubeMaster 会提前报no more resource。需编辑各节点 Cubelet 动态配置如Cubelet/dynamicconf/conf.yaml将mem_limit、mvm_limit、creation_concurrent_num调大后重启 Cubelet扩容 TAP 预分配池目标密度不要超过 Cubelet 配置中tap_init_num默认 500。想测 1000 个沙箱先把tap_init_num设为 1000 以上再重启 Cubelet 生效。懒人方案一条命令跑完官方自动化压测如果不想手动分步操作仓库里内置了全自动化压测脚本 tests/perf/cubebench.sh其中3.3 节 Single-Host Deployment Density (Memory Overhead)就是上面这套方法的脚本化版本会自动完成清理集群、创建模板、分批压测并生成 Markdown 报告bash tests/perf/cubebench.sh run 3.3 # 只跑内存密度内存开销一节注意两点该节依赖本机free(1)读数只能在单机部署上运行多节点集群会自动跳过并说明原因且每次测量前会销毁所有现存沙箱请勿对存有重要沙箱的环境执行。常见问题 FAQQ为什么我测出来的数字和 5MB 对不上A口径不同。5MB 只统计 VMM 进程自身宿主机free口径还包括 Guest 内核与常驻页均摊后约 20~30MB 量级。参考 docs/guide/introduction.md 中的指标说明。Q沙箱内存越大开销越大吗A单看 VMM 开销几乎不变但每个沙箱的实际占用随规格和负载线性增长——满载场景每个沙箱写满 2GiB下单机容量就按总内存 ÷ (2GiB 均摊开销)估算。Q测完怎么清理A用cubemastercli或 cube-bench 的默认模式删除全部沙箱再free -h确认内存回到基线附近。小结官方口径的内存开销 VMM-only 开销 5MB比传统 QEMU 的 30MB 低约 6 倍标准测量三步记基线 → 分批创建 free -h记录 → 增量 ÷ 沙箱数自动化入口是 tests/perf/cubebench.sh 的 3.3 节压测工具在 examples/cube-bench/实测前记得调大host.quota和tap_init_num并严格小批量推进避免 OOM 。按这套方法任何人都可以在自己的硬件上复现 CubeSandbox 的内存密度表现为高密度 Agent 部署规划提供第一手数据。【免费下载链接】CubeSandboxInstant, Concurrent, Secure Lightweight Sandbox for AI Agents.项目地址: https://gitcode.com/GitHub_Trending/cu/CubeSandbox创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
