
Fuse
文章平均质量分 74
Fuse
大隐隐于野
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
fuse性能选项meta_cache_mode
是 FUSE(Filesystem in Userspace)文件系统中的一个选项,用于控制元数据缓存的行为。元数据缓存涉及文件系统的各种元数据(如文件权限、所有者、时间戳等)的缓存策略。不同的缓存模式可以影响文件系统的性能和一致性。原创 2025-03-25 15:42:24 · 347 阅读 · 0 评论 -
fuse性能关键参数entry_timeout
是 FUSE(Filesystem in Userspace)中的一个选项,用于控制目录项缓存的有效期。具体来说,它决定了文件系统在多长时间内缓存目录项(如文件名到 inode 的映射),从而影响文件系统的性能和一致性。原创 2025-03-24 19:52:57 · 375 阅读 · 0 评论 -
linux pagecache回收过程page状态详解
blk_done_softirq->scsi_softirq_done->scsi_finish_command->scsi_io_completion->scsi_end_request->blk_update_request->bio_endio->ext4_end_bio->ext4_finish_bio->end_page_writeback->TestClearPageReclaim(page)和rotate_reclaimable_page(page)。那怎么做到读写该page数据同步呢。原创 2025-01-21 14:48:38 · 898 阅读 · 0 评论 -
fuse io mode
cached。原创 2025-01-20 19:50:43 · 306 阅读 · 0 评论 -
FUSE 的 writeback cache
但是,在实际生产中,我们发现 writeback cache 特性作用非常有限,原因是走 writecache 的写操作触发了内核 balance dirty page 的流程,使得本应该是响应时间非常短的写操作仍然会等较长时间才返回,这个问题在小的写入时尤其明显。FUSE 的解决方案是 writeback cache,即小写入写到缓存页即返回,由内核根据回刷策略推送至后端存储。FUSE 默认的写流程走的是 directIO 接口,使得每次写入长度较小时会有性能问题,因为每次的写请求都会被推送至后端存储。原创 2025-01-20 18:28:26 · 310 阅读 · 0 评论 -
fuse支持1MB io
cd /tmp。原创 2025-01-13 20:22:04 · 386 阅读 · 0 评论 -
基于Fuse的用户态文件系统性能优化几点建议
如果不作优化,Kernel Fuse对应用程序的每次page都会调用一次用户态文件系统的写操作,这样假如我们用户态的64KB的写请求,按照默认的PAGE_SIZE(4KB)可能会触发16次的用户态写,实际IO次数被放大,效率严重下降。预读是在是一件有趣的事情。由于Fuse的特殊性,需要严格控制数据缓存行为(看看我们前面提到的元数据缓存吧),因为可能我们实现的基于Fuse的文件系统其实是一个网络文件系统,那么如果使用内核缓存,可能就读到脏数据,因为作为用户态的你是很难控制内核的行为的。原创 2024-07-16 10:23:11 · 889 阅读 · 0 评论 -
FUSE使用总结
如果这个选项设置成false,则在进程删除文件时,如果这个被打开了,就会将这个文件rename成一个隐藏文件,待打开这个文件的进程把它关闭了才把隐藏文件删除。从架构图可知,用户进程userd访问文件系统userfsd时,需要先从用户态进入内核态,再从内核态到用户态,结果返回时也是从用户态进入内核态,再从内核态到用户态,数据需要多次拷贝。这种处理方式导致为了避免频繁起新的线程需要将保留idle线程的参数max_idle_threads设的比较大,但这个值比较大时,线程之间的切换开销也不小。原创 2024-07-16 10:06:02 · 701 阅读 · 0 评论 -
Fuse文件系统设计与实现
首先,fuse daemon会阻塞在读/dev/fuse,当app进程在fuse挂载点下面有新的文件操作(unlink),这时系统调用会调用fuse内核接口,并生成request,同时唤醒阻塞的fuse daemon。通过fuse_session_new在libfuse中注册了fuse daemon实现的fuse_lowlevel_ops,之后通过fuse的所有的文件操作,都会通过libfuse回调到fuse daemon进行处理。当fuse daemon处理完请求后,会将结果写回到/dev/fuse。原创 2024-07-16 09:41:05 · 988 阅读 · 0 评论