FUSE使用总结

1.FUSE简介

由于近期一个项目用到FUSE实现一个文件系统,所以有一些使用FUSE的经验。现总结如下:

FUSE(Filesystem in Userspace)是一个开源项目,它可以为用户提供编写用户态文件系统的接口。

运行架构如下:

image.png

2.性能消耗

从架构图可知,用户进程userd访问文件系统userfsd时,需要先从用户态进入内核态,再从内核态到用户态,结果返回时也是从用户态进入内核态,再从内核态到用户态,数据需要多次拷贝。从我们的测试结果看FUSE占用的cpu是整个userfsd占用的cpu的30%左右。

3.业务处理不支持固定的线程池

FUSE的处理每个请求时会从预留的线程里找是否有空闲的线程,如果没有就会起新的线程来响应请求。这种处理方式导致为了避免频繁起新的线程需要将保留idle线程的参数max_idle_threads设的比较大,但这个值比较大时,线程之间的切换开销也不小。

4.启动参数auto_unmount有缺陷

使用auto_unmount启动参数会让userfsd fork一个叫fusermount3的进程,但userfsd在代码里没有调用waitpid,这样编码的话,fusermount3异常退出的时候容易产生僵尸进程; 不过只退了fusermount3, 还不影响dbfsd的功能,但如果这个时候dbfsd也发生异常退出的话,挂载点目录就用不了,需要手工处理。

同时如果使用该参数,在非root用户启动userfsd时需要赋予fusermount3管理权限。所以建议不使用该参数。

5.文件被打开时该文件被删除

FUSE有个硬删除的选项,需要代码指定,缺省是false。如果这个选项设置成true,则即使该文件被一个进程打开了,另外进程也可以直接删除,如果这是正在进行写操作就会直接返回错误。如果这个选项设置成false,则在进程删除文件时,如果这个被打开了,就会将这个文件rename成一个隐藏文件,待打开这个文件的进程把它关闭了才把隐藏文件删除。

6.在非root用户下启动

为了安全考虑一般需要将用户态文件系统进程userfsd起在非root用户下,FUSE支持这种场景。userfsd可以指定allow_other启动选项,同时需要执行”echo user_allow_other >> fuse.conf”命令将user_allow_other放到fuse.conf配置文件里,这样userfsd就可以起在非root用户下了。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/377662.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

产品经理的AI大模型学习之旅

随着人工智能技术的飞速发展,大模型(Large Language Models, LLMs)正逐渐成为产品经理(Product Manager, PM)在产品开发过程中不可或缺的工具。大模型,尤其是语言模型,能够处理和理解自然语言&a…

GB35114控制信令认证流程

GB35114控制信令认证说明: 注册成功后,信令发送方与信令接收方进行交互时,采用基于带密钥的杂凑方式保障信令来源安 全。对除REGISTER消息以外的消息做带密钥的杂凑。启用Date字段,扩展信令消息头域,在头域中 增加 Note 字 段 (值 为 Digest…

【Python爬虫教程】第7篇-requests模块的cookies保存和使用

文章目录 为什么要保存cookiesrequests.utils工具类保存cookies到本地文件从本地文件解析cookies使用使用实践 为什么要保存cookies 保存cookies是避免每次都登录获取权限,一遍权限是有过期时间的,不需要每次重复登录,可以将cookies保存起来…

【Web服务与Web应用开发】【C#】VS2019 创建ASP.NET Web应用程序,以使用WCF服务

目录 0.简介 1.环境 2.知识点 3.详细过程 1)创建空项目 2)添加Web表单 3)使用Web表单的GUI设计 4)添加服务引用 5)在Web的button函数中调用服务,获取PI值 6)测试 0.简介 本文属于一个…

【数据集处理工具】根据COCO数据集的json标注文件实现训练与图像的文件划分

根据COCO数据集的json标注文件实现训练与图像的文件划分 一、适用场景:二、COCO数据集简介:三、场景细化:四、代码优势:五、代码 一、适用场景: 适用于一个常见的计算机视觉项目应用场景,特别是当涉及到使…

torch之从.datasets.CIFAR10解压出训练与测试图片 (附带网盘链接)

前言 从官网上下载的是长这个样子的 想看图片,咋办咧,看下面代码 import torch import torchvision import numpy as np import os import cv2 batch_size 50transform_predict torchvision.transforms.Compose([torchvision.transforms.ToTensor(),…

数据结构——单链表详解(超详细)(1)

前言: 小编在近日学习了单链表的知识,为了加强记忆,于是诞生了这一篇文章,单链表是数据结构比较重要的知识,读者朋友们一定要去好好的学习!这个可以说是比顺序表更好用的线性表,下面废话不多说&…

AV1 编码标准帧间预测技术概述

AV1 编码标准帧间预测 AV1(AOMedia Video1)是一种开源的视频编码格式,它在帧间预测技术上做出了显著的改进和扩展,以提供比现有标准更高的压缩效率和更好的视频质量。以下是AV1帧间预测技术的几个关键点: 参考帧扩展&a…

结合实体类型信息(2)——基于本体的知识图谱补全深度学习方法

1 引言 1.1 问题 目前KGC和KGE提案的两个主要缺点是:(1)它们没有利用本体信息;(二)对训练时未见的事实和新鲜事物不能预测的。 1.2 解决方案 一种新的知识图嵌入初始化方法。 1.3 结合的信息 知识库中的实体向量表示+编码后的本体信息——>增强 KGC 2基…

文件安全传输系统,如何保障信创环境下数据的安全传输?

文件安全传输系统是一套旨在保护数据在传输过程中的安全性和完整性的技术或解决方案。通常包括以下几个关键组件: 加密:使用强加密算法来确保文件在传输过程中不被未授权访问。 身份验证:确保只有授权用户才能访问或传输文件。 完整性校验…

RFID涉密载体管控系统|DW-S402功能介绍

文件载体管控系统DW-S402是用于对各种载体进行有效管理的智能柜(智能管理系统),实现对载体的智能化、规范化、标准化管理,广泛应用于保密、机要单位以及企事业单位等有载体保管需求的行业。 区域监控管理 主要是通过在需要监控的…

物业系统自主研发接口测试框架

1、自主研发框架整体设计 1.1、什么是测试框架? 在了解什么是自动化测试框架之前,先了解一下什么叫框架?框架是整个或部分系统的可重用设计,表现为一组抽象构件及构件实例间交互的方法;另一种定义认为,框架是可被应用开发者定制的应用骨架…

通过maven基于springboot项目构建脚手架archetype

1、引入脚手架构建的插件依赖 <!--构建脚手架archetype--><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-archetype-plugin</artifactId><version>3.2.1</version></plugin><plugin><…

风险评估:IIS的安全配置,IIS安全基线检查加固

「作者简介」&#xff1a;冬奥会网络安全中国代表队&#xff0c;CSDN Top100&#xff0c;就职奇安信多年&#xff0c;以实战工作为基础著作 《网络安全自学教程》&#xff0c;适合基础薄弱的同学系统化的学习网络安全&#xff0c;用最短的时间掌握最核心的技术。 这一章节我们需…

【PyQt】

PyQT5线程基础&#xff08;2&#xff09; 线程案例案例一案例二 线程案例 案例一 案例一代码通过线程实现点击按钮向线程传输地址&#xff0c;程序等待20秒后&#xff0c;返回结果。 通过QtDesigner创建如下图所示的界面ui&#xff0c;并用UIC工具转成对应的py文件。 Ui_tes…

SpringBoot实现图形验证码

目录 项目创建 前端代码实现 约定前后端交互接口 需求分析 接口定义 Hutool工具 实现服务器端代码 引入依赖 获取验证码 验证码校验 调整前端代码 随着安全性的要求越来越高&#xff0c;目前许多项目中都使用了验证码&#xff0c;验证码也有各种类型&#xff0c;如 …

Win11鼠标卡顿 - 解决方案

问题 使用Win11系统使&#xff0c;鼠标点击任务栏的控制中心&#xff08;如下图&#xff09;时&#xff0c;鼠标会有3秒左右的卡顿&#xff0c;同时整个显示屏幕也有一定程度的卡顿。 问题原因 排除鼠标问题&#xff1a;更换过不同类型的鼠标&#xff0c;以及不同的连接方式…

MT6825磁编码IC在智能双旋机器人中的应用

MT6825磁编码IC在智能双旋机器人中的应用&#xff0c;无疑为这一领域的创新和发展注入了新的活力。作为一款高性能的磁性位置传感器&#xff0c;MT6825以其独特的优势&#xff0c;在智能双旋机器人的运动控制、定位精度以及系统稳定性等方面发挥了关键作用。 www.abitions.com …

Jenkins 离线升级

1. 环境说明 环境 A: jenkins 版本&#xff1a;2.253使用 systemctl 管理的 jenkins 服务 环境 B&#xff1a; 可以上网的机器&#xff0c;装有 docker-compose docker 和 docker-compose 安装&#xff0c;这里都略了。 2. 安装旧版本 2.1 环境 A jenkins 目录打包文件 …

科普文:信创国产数据库兼容性一览

1. 常见国产数据库兼容性一览 让我们先从一张《数据库库兼容性一览表》开始&#xff0c;谈谈各家兼容性。 图片上传失败&#xff0c;csdn一直提示上传图片过于频繁 ❖ 兼容对象 在兼容对象上&#xff0c;大部分产品都将Oracle、MySQL、PostgreSQL作为兼容对象&#xff0c;部…