Hasty Briefsbeta

双语

Snapshots, copy-on-write, and the economics of agent sandboxes

6 hours ago
  • 在微虚拟机中运行大量独立代理会因真实工作负载的高内存和磁盘使用而变得昂贵,尽管Firecracker的开销较低。
  • 目标是使用CPU、内存和磁盘小时的线性成本模型,在最大化并发沙箱数量的同时最小化成本。
  • 具有一次性任务的简单临时沙箱不适合需要完整状态保留的长期代理会话。
  • 对整个微虚拟机状态(CPU、设备、内存、磁盘)进行快照会导致文件庞大,例如每个沙箱144 GiB,从而引发延迟和成本问题。
  • 内容可寻址存储将磁盘分割为16 MiB块,使用SHA-256哈希,并在沙箱之间共享;每个会话仅存储脏块。
  • 带有写时复制的NBD服务器处理读写操作,按需获取块,并仅为修改的数据创建私有副本,从而减少快照大小和延迟。
  • 内存使用MAP_PRIVATE和userfaultfd类似处理:按需填充共享基础内存文件,对脏页进行写时复制,保持唯一块较小。
  • 这种方法允许沙箱在空闲时被捕获和驱逐,将成本模型从请求的资源转移到实际唯一的资源(基础块加脏块)。
  • 结果是提高了会话密度,活动会话使用物理资源,非活动会话仅存储小型清单和唯一块。