《中国AI Agent应用研究报告 2024》开放下载 >>> 了解详情
写点什么

谷歌改进 gVisor 提高沙箱容器文件系统性能

  • 2023-02-16
    北京
  • 本文字数:994 字

    阅读完需:约 3 分钟

谷歌改进gVisor提高沙箱容器文件系统性能

谷歌改进gVisor中的文件系统实现,gVisor 是一个开源隔离层,用于面向商业容器的产品,如 App Engine、Cloud Run 和 Cloud Functions。根据谷歌工程师 Ayush Ranjan 和 Fabricio Voznika 的说法,新的 gVisor 文件系统被称为 VFS2,可以将文件密集型工作负载的性能提高大约 50%-75%。

 

gVisor 的主要目标是在容器和底层内核之间提供一个隔离层,该隔离层由运行在同一节点上的所有容器共享。为了防止恶意或易受攻击的容器危及整个节点的安全,gVisor 实现了 Linux 系统表层的很大一部分,包括一个名为 runsc 的符合开放容器倡议(OCI)的兼容运行时,该运行时在应用程序和主机内核之间提供隔离边界。

 

由于 gVisor 内核不可信任,因此它不能直接访问文件系统。文件系统操作由代理(称为 Gofer)来代理操作,该代理与可能的恶意工作负载相隔离。像 open、create 和 stat 这样的操作被转发到代理,经过审核,然后再由代理执行。

 


谷歌工程师发现,gVisor Gofer 文件系统通过将路径解析委派给底层文件系统(每个路径组件使用一个 RPC 调用)来处理路径解析的方式对性能有害。对于频繁执行文件操作的工作负载,例如构建任务或运行带有大量导入的 Python 和 NodeJS 程序时,情况尤其如此。

 

要解决这个问题,需要启用 gVisor 的 Sentry,使其能够将路径解析直接委托给文件系统。......例如,在 VFS1 stat(/foo/bar/baz)中,至少生成三个到 gofer(foo,bar,baz)的 RPC,而 VFS2 仅生成一个。

 

此外,谷歌还借此机会创建了一个用于在 gVisor 沙箱和 Gofer 之间进行通信的新协议。该新协议名为LISAFS((Linux Sandbox File system protoco,Linux 沙箱文件系统协议),它既减少了 RPC 调用的数量,也减少了它的内存使用量,改善了多路径组件的遍历,并加快了文件 I/O。

 

Ranjan 和 Voznika 表示,由于这些变化, 根据许多不同的度量指标,runsc引入的开销减少了 50%-75%。

 

与在根文件系统或内存文件系统中托管源代码相比,使用绑定装载时的改进最大。这些结果是通过运行官方 bazel 基准测试构建 gRPC 和 Abeil 而获得的。

 

基准测试的结果基本上得到了实验数据的证实,实验数据表明,整个平台上的 Google App Engine 冷启动时间提高了 25%以上,这一数据包括了所有类型的工作负载,而不仅仅是文件系统密集型的工作负载。

 

原文链接:

https://www.infoq.com/news/2023/01/gvisor-file-system-improvements/


相关阅读:

Google App Engine 涨价,开发者深受打击

Google 发布 App Engine 的 Go 语言通用版

2023-02-16 08:006838

评论

发布
暂无评论
发现更多内容

java培训-不干程序员了还能干什么

@零度

JAVA开发

Ali266首次商用落地,助力优酷码率最高节省40%

阿里云视频云

阿里云 音视频 优酷 编码器 视频云

云效·Insight(效能洞察)一款面向企业研发管理层的研发效能数字化度量服务

阿里云云效

阿里云 云原生 研发管理 研发效能 效能洞察

虚拟货币网络犯罪愈演愈烈 安全防护更要“多管齐下”

CECBC

使用混合云平台企业,怎样才能做好运维?

行云管家

私有云 混合云 多云管理 云管平台

使用APICloud开发多端短视频应用

YonBuilder低代码开发平台

前端开发 APP开发 APICloud 多端开发 小程序开发

vulnhub靶场解题笔记——THE PLANETS:EARTH

L0kt4r

渗透测试

Zadig 构建缓存如何配置才好用?

Zadig

云原生 CI/CD 软件交付 Zadig

主流跨端开发技术方案对比

Speedoooo

跨端开发 跨端 降本增效 小程序容器 轻应用

Element Plus for Vue 3 入门教程

蒋川

Element Element Plus Element UI

解读加密市场13种NFT类型

CECBC

新手指南,带你启航:如何给OpenMLDB社区贡献代码

第四范式开发者社区

机器学习 数据库 开源 开源社区

如何为网站建立一个FAQ页面?

小炮

FAQ

分享回顾|木兰技术开放日,建木团队与你一同畅聊「云原生」

Jianmu

ci 开源 云原生 开发运维

KubeEdge-Sedna边云协同终身学习:迈向次时代AI范式

华为云原生团队

人工智能 开源 AI 边缘计算 边缘技术

Element Plus 和 Ant Design Vue 对比测评,哪个更好?

蒋川

Vue antd vue Element Plus Element UI Ant Design

浅谈Vue开发小程序

Speedoooo

小程序 Vue 开发框架 小程序容器

好代码和坏代码

博文视点Broadview

Linux驱动开发-编写FT5X06触摸屏驱动

DS小龙哥

4月月更

TASKCTL-调度监控常见问题

敏捷调度TASKCTL

kettle 分布式任务调度 ETL任务 ETL系统

活动预告 | 对话ACE:Oracle停服俄罗斯,国产数据库未来发展

OceanBase 数据库

oceanbase

资产设备信息管理系统的功能

低代码小观

资产管理 CRM 企业管理系统 CRM系统 企业设备管理

王者荣耀商城异地多活架构设计

阿卷

架构实战营

uni-app技术分享| uni-app转小程序_实时音视频

anyRTC开发者

小程序 音视频 WebRTC uniapp 实时通讯

我国将筹建工业元宇宙服务平台

CECBC

做网工还是运维好?小白求解!

行云管家

云计算 运维 网络 IT运维

"三高"Mysql - Mysql备份概览

懒时小窝

MySQL 高可用 MySQL 数据库

厉害!我带的实习生仅用四步就整合好SpringSecurity+JWT实现登录认证!

沉默王二

Java

jackson学习之二:jackson-core

程序员欣宸

4月月更

为什么要做网站SEO优化?

源字节1号

SEO优化

一场由TiCDC异常引发的GC不干活导致的Tikv硬盘使用问题

TiDB 社区干货传送门

谷歌改进gVisor提高沙箱容器文件系统性能_语言 & 开发_Sergio De Simone_InfoQ精选文章