NFS mount本地挂载的一个大坑,可有回避方案?

E2000 RGMII0通讯异常问题总结 飞腾E2000 RGMII接YT8521,RGMII0路不通问题。 阅读详情
当你只需要获取一个文件的attributes,而非整个文件的内容时,它也会将整个文件传输到客户机, 

在文件很大或频繁访问小文件时,会导致极为可观的网络流量,严重时会把网络拖垮。。 



【 在 Mikov 的大作中提到: 】 
: 这种情况就别用nfs了. 本来nfs就是一种偷懒的做法. 

: 在存储端跑一个jvm做代理, 将功能接口化 

嗯,在公有云的虚拟IDC里,,, 
其实原本想用S3兼容接口的存储服务(比如Minio),不过技术调研还有些兼容性问题。 
用NFS是个过渡,还考虑过FTP的方案,但是FTP也是个巨坑。 

姑且先用cachefilesd配合NFS试试,只要能降低反复读的压力就能扛一段时间, 
等到S3兼容的存储服务OK了,就直接切换到S3 API了。 

【 在 zxeoc 的大作中提到: 】 

: 文件存进去的时候就同时存一份相关信息,手工维护一下两者的关系 

现在就等价于这么干的。 
因为文件是用户上传而来的,取得size、mime等信息的时候就改为从上传的临时文件里取了。 
不过即便如此,从临时文件到nfs落盘等,有些第三方代码还是不好控制的,导致多读了几次文件。 

回来报告一下初步结果:cachefilesd然并卵。 

有待进一步调查。 

【 在 zxeoc 的大作中提到: 】 

: 文件信息存db或者redis之类的地方呢? 

嗯,文件信息是有存在DB的, 
问题就在于,文件从用户上传到元数据入DB之前,就产生了大量的NFS网络IO。 

一个两个文件体现不出来,同时上传成千上万的文件时就很可观了。 

【 在 ckc 的大作中提到: 】 

: sshfs 

新技能get~ 
先赞后看。:D 
  
不知道sshfs对于大量文件写入的性能怎么样? 

比如1000个小文件同时写入。。 

【 在 zxeoc 的大作中提到: 】 

: 上传文件除了写入本身,还有什么io?如果就是指写入本身,那这个没有什么好办法 

除了写入就是获取元数据了,size、mime神马的。 
第三方底层代码有点渣(flysystem),不是各种attr在一次access里全部取回, 
而是每个attr就access一次,如图,吐血…… 

第三方代码能改的地方已经改了,目前的情况比图上要好一点,但是对整体IO压力改善不大。 


【 在 zxeoc 的大作中提到: 】 
: 如果这样的话我建议你换个第三方,这么搞以后换了S3也未必扛得住 

: 这让我想起当初写SAP报表,本来被一个跑半小时客户端掉线都跑不出来的报表引发了强迫症,但是看代码看到同事的20多个数据库查询语句写在5重循环里面,强迫症瞬间就治好了 

哈哈哈,咱也不能比烂么不是。。:D 

flysystem是一个标准,提供一套接口,对于不同的后端存储是不同的实现, 
烂的是Local的实现(其实只是它没针对远程文件做优化罢了), 
S3的实现还是可以的,不过就是S3的API太重了,,代码极其绕…… 
因为S3依赖HTTP,额外的事就少不了,也不奇怪。 
  
另外我还没有找到一个对S3 API兼容比较好的第三方存储实现, 

之前调查过Minio,但是存在兼容性问题,没接着往下调查。 

【 在 cn62 的大作中提到: 】 
: nfs会有这种问题? 

: getattr不会获取文件内容啊。 

事实如此咯。。。 

特定版本都nfs和kernel凑在一起还会闪崩呢。。 

【 在 nikezhang 的大作中提到: 】 

: 网上说getattr调用比较多可以调优缓存属性   

噢,说的是cachefilesd 吗? 
方便的话还请给个url吧。。。 
  
客观地说cachefilesd 确实可以降低最终落到NFS server的压力的, 
这一点我在上一次说“然并卵”的时候是不够严谨的,它只是对我遇到的特殊场景帮助不大而已, 
但是我用ionotify 反复观察验证过cachefilesd 对于降低文件访问压力是有效的。 
  
我已经改了第三方的实现,把13楼给出的那张图里面每个文件的十余次操作降低为4次, 

所有access都消灭了,只留下create、open、modify、close_write、close。 

20180416追记:  
nfs的问题今天早上还真找到解决办法了。。。   
一个底层组件为了控制单一文件夹下的文件数量,每写入一个文件就listdirectory一次(判断已有文件数),   
导致nfs readdir的巨大网络开销,现在改成不要自动控制文件数量了,直接预设1024个目录,   
按文件名hash分片给1024个目录,这样就算每个文件夹控制到65535,也够6千万+的文件数量,   
到时人工监控文件数量,差不多了就改一下文件夹名称的偏移量,自动导流到1024个新目录。。。   
      
nfs readdir 的网络开销,能把上传流量放大100倍,比如网关接收的上传流量只有5Mbps的时候(每个文件几十KB),   

存储节点的带宽能占到500Mbps,其中90%的带宽都被readdir操作消耗了,砍掉这部分流量之后就轻松多了。 

药物重定位实战:如何用反向找靶技术挖掘老药新用(附Python代码示例) 本文详细介绍了药物重定位中的反向找靶技术,通过分子相似性计算、机器学习模型和结构对接等方法,挖掘已有药物的新治疗潜力。附Python代码示例,帮助读者快速实现从分子结构到潜在靶标的智能预测,显著提升药物研发效率。 阅读详情

相关推荐

Cadence HDL原理图库避坑指南:从Excel导入引脚到解决‘V- V+’报错(附FPGA实例)

本文详细介绍了Cadence HDL原理图库的高效构建与排错方法,重点讲解如何从Excel智能导入引脚数据并优化FPGA封装设计。通过数据预处理、智能导入和深度排错三个关键阶段,帮助工程师避免常见错误如‘V- V+’报错,提升设计效率和准确性。

weixin_28739079的博客 236

linux进程cachefilesd,RHEL6/7 x86_64下cachefilesd占用cpu达到100%

昨天,有个测试环境cachedfilesd CPU 100%,一直在跑了挺久,经查1. CacheFiles介绍NFS是一种经常使用到的网络共享文件系统,在分布式环境下,多台服务器的文件共享是一个问题。然而,对于这个问题,最常想到最容易做到的那就非NFS莫属了。那么如何来提高NFS文件的访问性能呢?加上缓存呗。没错。在linux下,有一个缓存文件系统叫FS-Cache,来缓存网络文件系统,如NFS...

weixin_36473057的博客 1108

锐捷路由器DNS Proxy保姆级配置教程:从零到实战,手把手教你搞定内网域名解析

本文提供锐捷路由器DNS Proxy功能的详细配置教程,从基础环境搭建到实战测试,手把手教你实现内网域名解析。涵盖上游DNS设置、内网域名映射、故障排查等关键步骤,帮助网络管理员快速解决内网访问难题,提升工作效率。

weixin_29284657的博客 555

mount 成功后断网状态下程序访问远程目录被卡死

背景说明: 最近在使用mount远程目录的方式向远程机器写文件操作,当mount 成功后拔除网线或其它断网导致同远程环境之间实现网络断开,在此程序如果去操作被mount的目录程序卡滞,或者程序直接挂起,当恢复网络后程序继续运行。 问题分析: 在mount 需要去写远程文件时,程序会去被mount的目录下进行判断用以存储文件的子目录是否存在,或者直接去创建文件目录,或者创建文件,进而会调用到标准库中的access,mkdir 等标准函数, 而在访问被mount的目录时,实则是通过RPC...

pqscash12的博客 3561

Android Termux 安装Kali Linux 或 kali Nethunter史诗级详细教程

Termux 安装kali

风云小虾米的博客 6万+

南京邮电大学电工电子基础B实验六(组合逻辑电路)

南京邮电大学电工电子基础B实验五(组合逻辑电路);电工电子;南京邮电大学;计算机学院;实验报告;电路图;

亦是远方的小地方 1万+

linux nfs共享目录访问速度慢,CentOS / RHEL Cachefiles 加速网络文件系统NFS访问速度...

1. CacheFiles介绍NFS是一种经常使用到的网络共享文件系统,在分布式环境下,多台服务器的文件共享是一个问题。然而,对于这个问题,最常想到最容易做到的那就非NFS莫属了。那么如何来提高NFS文件的访问性能呢?加上缓存呗。没错。在linux下,有一个缓存文件系统叫FS-Cache,来缓存网络文件系统,如NFS。 FS-Cache是在linux内核版本2.6.30及以上版本引入的。在RHCE...

weixin_34820916的博客 3704

IgH EtherCAT 从入门到精通:第 5 章 多主站与系统集成配置

本文介绍了 EtherCAT 多主站配置与系统集成方法。主要内容包括: 多主站实例配置原理:通过内核模块参数指定多个主站设备,每个主站独立管理一条 EtherCAT 总线,最多支持32个主站实例。 配置文件详解:在/etc/ethercat.conf中通过MASTER<X>_DEVICE变量定义各主站绑定的网卡或MAC地址,支持冗余备份配置。 系统服务集成:提供了systemd服务单元文件和传统init.d脚本两种方式实现开机自启动和管理,并建议通过override文件定制服务依赖关系。 架构示

从事嵌入式linux android驱动开发,拥有全栈能力 352

cachefilesd使用操作说明手册 | KeyarchOS

浪潮信息KOS是浪潮信息基于Linux Kernel、OpenAnolis等开源技术自主研发的一款服务器操作系统,支持x86、ARM等主流架构处理器,性能和稳定性居于行业领先地位,具备成熟的 CentOS 迁移和替换能力,可满足云计算、大数据、分布式存储、人工智能、边缘计算等应用场景需求。详细介绍见官网链接id=12126。Linux内核中的cachefilesd进程是一种文件系统缓存程序,用于缓存在远程目录中使用的常规文件。

KeyarchOS的博客 1072

vLLM显存逆向计算:如何得到最优gpu-memory-utilization参数

本文提出了一种**逆向工程**的思路:基于vLLM显存占用的底层机制,通过精确计算模型权重、KV缓存、激活内存等各组件的显存需求,**倒推出最优的gpu-memory-utilization参数**。这种方法让我们能够在部署前就准确预估资源需求,实现一次配置、稳定运行。本文我们将从vLLM显存计算的核心原理出发,构建完整的倒推计算框架和源码,并通过大量实验验证其准确性(会有误差,但基本可以直接使用)。

羊城迷鹿的博客 1949

【YOLO系列】YOLOv12详解:模型结构、损失函数、训练方法及代码实现

本文提出YOLOv12,一种以注意力为中心的实时目标检测框架,通过创新性改进解决传统YOLO模型在精度与速度上的失衡问题。核心贡献包括:1)轻量混合注意力模块(LHA)结合通道与空间注意力,在不增加计算负担下提升特征提取能力;2)区域注意机制与R-ELAN网络优化特征聚合,显著改善小目标检测(AP_S提升8.3%);3)动态多光谱数据增强策略增强模型鲁棒性。实验表明,YOLOv12在COCO等基准上实现SOTA性能,同时保持2.1 TOPS/W的高能效比,适用于边缘设备部署。该工作为实时目标检测提供了新的注

一碗白开水一 1808

cachefiled

1.cachefiled介绍    FS-Cache 是指在文件系统和缓存之间的接口。  CacheFS 指的则是FS-cache的缓存后端。CacheFS做实际的数据存储和检索处理,并使用块设备的分区。    NFS,AFS等netfs因为受网络的影响,使得对数据访问和存储的实时性就有了一定的挑战,CacheFS(FS-cache缓存后端即客户端)可解决响应实效的问题 ,用于提供分布式文件系...

weixin_33847182的博客 738

基于DWA算法的机器人动态避障技术实现及matlab代码

DWA算法是一种基于轨迹的运动规划算法,其核心思想是:在机器人当前位置及速度的基础上,结合机器人感知到的环境信息,生成一组合法的速度指令,然后从这组速度指令中选取代价最小的速度指令作为机器人的下一步操作。下面,我们将通过一个实例来演示基于DWA算法的机器人动态避障技术实现。假设机器人在一个宽敞的场地内行驶,但场地内有一些固定障碍物和移动障碍物,机器人需要避开这些障碍物,并在场地内自由移动。本文给出了一种基于DWA算法的机器人动态避障技术实现及相应的matlab代码,读者可以根据自身需求进行修改和调整。

uote_e的博客 1003

使用CacheFiles缓存,减少网络IO

CacheFiles是NFS缓存功能的文件系统之一,还有一个是CacheFS。关于FS-Cache、CacheFiles、CacheFS三者之间的区别,可以查看:https://people.redhat.com/dhowells/fscache/FS-Cache.pdf一、环境 redhat or centos 二、安装在使用CacheFiles之前,我们需要先使用yum update更新。若

每天的表现,未来的必然! 7870

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

linux配置分区缓存,Linux使用fscache给NFS(客户端)添加本地SSD缓存|CentOS7为例

安装FScache模块yum -y install cachefilesdsystemctl enable cachefilesdsystemctl start cachefilesd配置参数默认配置文件在/etc/cachefilesd.conf,其中第一行是SSD缓存的位置,我因为系统盘是SSD所以没有做任何修改,有兴趣可以研究一下。# cat /etc/cachefilesd.conf###...

weixin_30569923的博客 2060

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

Cache files

===============================================         CacheFiles: CACHE ON ALREADY MOUNTED FILESYSTEM         =============================================== Contents:  (*) Overview.  (*) Requi

466

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

使用CacheFS+TmpFS加速NFS读取速度

使用CacheFS + TmpFS加速NFS读取速度CacheFS 文件系统CacheFS 文件系统简介使用CacheFSTmpFS文件系统同时使用CacheFS和TmpFS参考资料 CacheFS 文件系统 CacheFS 文件系统简介 CacheFSTM 文件系统可以用于提高远程文件系统或慢速设备(如 CD-ROM 驱动器)的性能。高速缓存文件系统时,会将从远程文件系统或 CD-ROM 中读取的数据存储在本地系统上的高速缓存中。 如果要提高 NFS 或 CD-ROM 文件系统的性能和可伸缩性,应该使用

wqfhenanxc的专栏 1395

NFS client &挂载参数

协议标准 NFS version 2 [RFC1094], NFS version 3 [RFC1813], ...

zangjiaoshou的博客 808

Linux 6中Cachefilesd服务过量日志问题解决

我们在实际运维环境中,对操作系统OS的维护是必须进行的。应用系统是一个整体,绝对不仅仅包括应用服务器上运行的应用程序本身和数据库服务器,还包括操作系统、网络、存储甚至硬件方面。对应用系统整体的监控保障,才能带来最稳定的运行性能。 绝大多数情况下,我们环境中的操作系统都是可以持续运行的,不会引起大的问题。一旦出现当机、服务器Hange住的情况,就可能导致灾难性的结果。所以,亡羊补牢不如防微杜渐,经...

当命运之神把人抛入谷底的时候,也是人生腾飞的最佳时节。这个时候谁能积累能量,谁就能在未来获得丰收的回报;谁若自愿自艾,必定坐失良机,等在前面的将是两手空空和后悔莫及。 425

Linux mount 挂载出现疑难问题;mount can‘t find in /etc/fstab

命令全盘搜索一下,该文件是否被移动到其它目录里面去了,如果确认不是自己移动的,就把找到的 fstab 文件复制一份到 /etc/fstab 里面去,否则就 ln -s 建立软链接到 /etc/fstab。如果是文件你就删除它,并且在重建为目录类型,如果这样都无法解决,那么说明问题需要更进一步尝试分析处理。在尝试看看,如果还是不能解决,那么就要比这个步骤在深入一步进行处理,这就是个小问题来着,不用过于惊慌。检查 /etc/fstab 文件是否存在,如果不存在就需要用。保存文件并且退出,并且执行命令;

liulilittle的博客 1万+

nfs宕机导致使用nfs挂载机器,cpu负载虚高解决办法

nfs宕机导致使用nfs挂载机器,cpu负载虚高解决办法

weixin_44408441的博客 1981

NFS 服务器搭建遇到的一些小坑

1、配置客户端 和服务端的时候,要用外网地址! 2、当遇到报错 如: mount.nfs: access denied by server while mounting 的时候要学会查看日志.   在服务端运行命令:  cat /var/log/messages | grep mount   我这边的报错信息是:   从出错日志可以看出,mount.nfs: access deni...

Cincinnati_De的博客 647

linux进程cachefilesd,Linux 6中Cachefilesd服务过量日志问题解决

一个接受的新系统,应用服务器和数据库服务器均为Linux 6版本。系统本身架构比较简单,而且运行一年来也没有什么严重故障发生。一我们在实际运维环境中,对操作系统OS的维护是必须进行的。应用系统是一个整体,绝对不仅仅包括应用服务器上运行的应用程序本身和数据库服务器,还包括操作系统、网络、存储甚至硬件方面。对应用系统整体的监控保障,才能带来最稳定的运行性能。绝大多数情况下,我们环境中的操作系统都是可以...

weixin_39633165的博客 225

一个NFS缓存管理包的bug导致文件系统满的问题和解决方法

这几天安装CentOS 6的虚拟机总是提示文件系统满,一开始以为是最近oracle经常操作大数据量提交导致undo tbs无限扩大,后来发现原来是NFS缓存管理包cachefilesd的问题。分享一下:由于是测试虚拟机,文件系统懒得专门规划,只划分了一个根目录分区。(各位admin切记不要犯这种实际生产环境的大忌):[root@*/]df-h Filesystem...

weixin_33862041的博客 261

Redhat FS-Cache Guide

⁠Chapter 10. FS-Cache 10.1. Performance Guarantee 10.2. Setting Up a Cache 10.3. Using the Cache With NFS 10.3.1. Cache Sharing 10.3.2. Cache Limitations With NFS 10.4.

茄肥猫的窝 1305
上一篇: 如何在macOS 10.13.4上编译安装subversion 1.9.x的javahl
下一篇: xfs_repair 拯救 LVM 文件系统的正确姿势
梦想家起飞
博客等级 码龄24年 24粉丝 50原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值