写点什么

谷歌改进 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:007928

评论

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

如何使用代码获得一个function module的Where Used List

汪子熙

CRM SAP abap SAPGUI

如何证明CRM WebClient UI上的应用是有状态(Stateful)的

汪子熙

CRM SAP abap WebClient UI

架构师训练营 作业四

开拓纪

设计千万级学生管理系统的考试试卷存储方案

俞嘉彬

观察者模式在One Order回调函数中的应用

汪子熙

CRM SAP abap

CRM订单状态的Open, In process和Completed这些条目是从哪里来的

汪子熙

CRM SAP ERP abap

SAP Fiori里的List是如何做到懒加载Lazy load的

汪子熙

JavaScript SAP Fiori SAP UI5

SAPGUI里实现自定义的语法检查

汪子熙

SAP abap SAPGUI 语法检查

架构实战营 - 模块四作业

Sun

如何将iso文件安装到Virtual里的ubuntu去

汪子熙

Linux ubuntu windows 虚拟机 Windows 10

优化docker镜像的几种方法

运维研习社

Docker 镜像 优化技巧 5月日更

人生算法:做事要闭环

石云升

读书笔记 职场经验 5月日更 人生算法

如何在ubuntu上安装virtualbox的driver module vboxdrv

汪子熙

ubuntu 虚拟机 vboxdrv 驱动

ABAP宏的调试

汪子熙

调试 SAP abap macro

如何给VirtualBox虚拟机的ubuntu LVM分区扩容

汪子熙

虚拟机 Cloud virtualbox CloudFoundry

ABAP的语法高亮是如何在浏览器里显示的

汪子熙

SAP abap SAPGUI 语法高亮

那些年我用过的SAP IDE

汪子熙

ide SAP abap SAPGUI

金融科技如何在产业互联网蓝海中扬帆远航?大数据、区块链与物联网应用被看好

CECBC

ABAP和Java里关于DEFAULT(默认)机制的一些语言特性

汪子熙

SAP abap Netweaver SAPGUI

S4HANA和CRM Fiori应用的搜索分页实现

汪子熙

CRM SAP Fiori SAP UI5 S/4HANA

在浏览器里使用SAPGUI里的SE80

汪子熙

JavaScript SAP abap Fiori SAP UI5

如何使用腾讯云提供的云主机

汪子熙

腾讯云 云主机 Cloud

如何使用SAP Cloud for Customer里的ABSL代码调用Web service

汪子熙

SAP C4C Cloud for Customer

高性能 JavaScriptの六 -- 老生常谈Ajax

空城机

JavaScript ajax 大前端 5月日更

会说话的ABAP report

汪子熙

SAP abap SAPGUI

S/4HANA for Customer Management里的搜索分页处理

汪子熙

CRM SAP abap S/4HANA

如何用ABAP代码读取CDS view association的数据

汪子熙

CDS SAP abap CDS view

如何在Chrome development tool里查看C4C前台发送的未经 GZIP 压缩之前的请求细节

汪子熙

chrome SAP C4C Chrome开发者工具

ABAP git客户端的简单介绍

汪子熙

GitHub SAP abap

如何使用Putty登录安装在VirtualBox里的ubuntu

汪子熙

ubuntu windows 虚拟机

CRM, C4C和Hybris的工作流简介

汪子熙

CRM SAP C4C Hybris Commerce Cloud

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