Comments (4)
文章主要讨论了 FUSE 在什么场景更加适合的问题。根据论文的说法,在部分实验中 FUSE 的性能损耗最高可达 -83%,同时 CPU 利用率提高了 31%。
首先 FUSE 之所以在近些年如此受到欢迎,主要有 4 个原因。首先是一些 Stackable 的文件系统相比于传统的文件系统,多了很多新功能,其次是在学术界和研发文件系统的领域,FUSE 能够加速开发迭代和原型设计。再次是一些现存的文件系统也在通过 FUSE 的方式提供支持。最后是一些公司也在使用这一特性开发自己的文件系统。
我感觉这里提到的都不是原因,而是现象。文章在 writing 上多少有点问题。正是因为 FUSE 使得文件系统的开发者和使用者可以在不修改内核的情况下开发和运行文件系统,才会使得有越来越多的企业用户和学术界用户。
所以 FUSE 的核心优势,其实只有一个:脱离内核,便于开发和使用。那么它的劣势也显而易见,由于不在内核态,所以性能相比于在内核中的文件系统,肯定是会差一些。
而开发的方便程度是没有办法量化衡量的,(也有,比如开发相同功能的一个文件系统他,通过 FUSE 和在内核里做花费的时间等,但是不方便发 paper)因此这篇文章主要关注在 FUSE 在性能上到底有多大的成本,来给 FUSE 的用户们一些 insights。知道自己在用什么东西 tradeoff 开发的友好性。
文章是通过实现了一个简单的构建在 EXT4 上的 FUSE 文件系统,跟原生的 EXT4 文件系统做性能上的对比,来说明 FUSE 这一层带来了多大的开销。在一些场景和硬件上,两者表现差不多,但是在最差的 case 上 FUSE 实现的性能降低了 83%。
from papers-notebook.
文章提到很多文件系统都只是在用 FUSE 提供的接口在实现自己的文件系统,但是很少有对 FUSE 本身实现的研究。文章的一个贡献就是给我介绍了一些 FUSE 中可能会影响性能的实现细节。
FUSE 由两部分组成,一部分是 kernel 里的部分,一部分是用户态的部分。其中 kernel 态是一个 kernel module(图里蓝色的)。当内核 load 这个 module 的时候,会在 VFS 中注册一个 FUSE 的 file system driver。这个 driver 是一个代理,代理到用户态的文件系统实现中。这个方式让我想到 Nvidia 的 UMD 和 KMD 🤔
Kernel module 除了注册文件系统之外,还会注册一个 /dev/fuse 的块设备。用户态的那个部分是一个 daemon 程序(绿色的),它会跟 libfuse 这样的 library 链接,通过 callback 的方式来接受来自内核的请求。请求主要就是通过 /dev/fuse 的接口进行通信。所以 FUSE 本身会提供一个 kernel module 和一个 lib,我们要实现一个文件系统,只需要 link 它提供的 lib,然后实现对应的回调就好了。
文章里介绍的实现细节确实太细节了,我想大多数人没有了解的必要。。。
from papers-notebook.
from papers-notebook.
结果很有意思,并不像文章标题那么夸张,在 SSD 上的 FUSE 顺序读的性能 overhead 基本都在 5% 以内。随机读的开销还是蛮大的。写的开销基本都不大。开销最大的是 metadata-intensive 的工作负载,频繁的文件元数据操作的场景,基本性能开销都超过了 50%。
from papers-notebook.
Related Issues (20)
- Retiarii: A Deep Learning Exploratory-Training Framework HOT 1
- Gradient Compression Supercharged High-Performance Data Parallel DNN Training
- Generating Complex, Realistic Cloud Workloads using Recurrent Neural Networks
- Boki: Stateful Serverless Computing with Shared Logs HOT 2
- Faster and Cheaper Serverless Computing on Harvested Resources
- MAPA: Multi-Accelerator Pattern Allocation Policy for Multi-Tenant GPU Servers
- An Evaluation of WebAssembly and eBPF as Offloading Mechanisms in the Context of Computational Storage HOT 1
- Maglev: A Fast and Reliable Software Network Load Balancer HOT 3
- ZeRO & DeepSpeed: New system optimizations enable training models with over 100 billion parameters HOT 13
- ZeRO-Offload: Democratizing Billion-Scale Model Training HOT 2
- Serving DNN Models with Multi-Instance GPUs: A Case of the Reconfigurable Machine Scheduling Problem HOT 1
- BAGUA: Scaling up Distributed Learning with System Relaxations
- Mind the Gap: Broken Promises of CPU Reservations in Containerized Multi-tenant Clouds HOT 2
- DeepRest: Deep Resource Estimation for Interactive Microservices.
- Cntr: Lightweight OS Containers HOT 4
- VMSH: hypervisor-agnostic guest overlays for VMs HOT 6
- Towards Observability for Production Machine Learning Pipelines
- How Large Language Models Will Disrupt Data Management HOT 1
- VBASE: Unifying Online Vector Similarity Search and Relational Queries via Relaxed Monotonicity
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from papers-notebook.