8000 fast_fuse项目:使用eBPF优化FUSE read/write 等方法性能 · Issue #544 · linuxkerneltravel/lmp · GitHub
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content
fast_fuse项目:使用eBPF优化FUSE read/write 等方法性能 #544
Open
@helight

Description

@helight

fast_fuse 项目:使用eBPF优化FUSE read/write 等方法性能
背景
FUSE(Filesystem in Userspace)是一个常用的用户空间文件系统框架,它允许用户空间程序实现自己的文件系统,并且可以通过内核的VFS(Virtual File System)接口进行挂载和管理。但是,FUSE存在性能瓶颈,其中之一就是在文件读取时存在内存拷贝,特别是在大量的小文件读取场景。
eBPF(Extended Berkeley Packet Filter)是Linux内核提供的一种强大的动态追踪和过滤技术,它可以使用户空间程序在不修改内核代码的情况下,对内核执行的系统调用、网络数据包等进行监控和处理。近年来,eBPF已经成为了Linux系统中优化性能和安全的重要工具之一。
本题目旨在探索使用eBPF技术优化FUSE文件系统的read性能,并在某一个场景下验证,例如大量小文件拷贝场景等,可与社区导师商榷后确定。

运行要求:
● 运行系统: ubuntu22.4 以上
●使用标准fuse库开发简易文件系统,可以在 ubuntu22.4 以上的内核进行运行,至少实现 open,read,write,close 等方法。
●对比标准fuse库开发的简易文件系统,实现某一特定场景下性能提升,比如 read 或者 write。
●提供准确的验证测试报告。

技术要求:
●熟练掌握Linux系统编程和网络编程相关知识;
●熟悉FUSE框架的基本原理和使用方法;
●熟悉eBPF技术的基本原理和使用方法;
●具备C/C++编程能力,在Linux环境下独立完成项目开发和调试。

PR提交

  1. 提交了tinyfs的代码,增加了fusedemo的测试用例 add tinyfs and the test case of fusedemo #556
  2. 修改了原本的fusedemo的README.md文档 modify the README.md of fusedemo #559
  3. add Makefile of fusedemo #571

TODO

  • 为现有 fusedemo 代码添加注释
    fusedemo注释及分析 #580
  • 增加测试用例——fusedemo
  • 自动化流水线缺失,需要添加好自动化流水线
    fast_fuse:修改fusedemo的流水线 #670 补充好了fusedemo的流水线
  • 向合适内核版本中适配extfuse
    适配环境:ubuntu 22.04 ,linux-5.10.0
  • 给出测试性能等结果分析
  • read、write 方法优化 ,即文件数据块的快速路径
  • 实现用户态缓冲区以及相关机制:回写机制、预读机制、数据淘汰
  • 将fuse原本调用底层文件系统进行读写的方法进行改写(用户态实现的文件系统中实现,即fusedemo中)
    1.对open功能进行改写修改open添加测试语句 #690

Metadata

Metadata

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions

    0