海量小文件传输慢的原因以及对应的优化方案

news2024/11/17 13:48:59

在日常工作中,我们经常遇到需要传输一些小文件的情况,但是当小文件的数量很多的时候,为什么小文件传输的速度就会变得很慢呢?为什么复制许多较小的文件时,小文件传输效率就会降低呢?针对这些问题,小编为大家整理了一些小文件传输慢的原因以及小文件传输的优化方案。

假如我要把一个便携式软件目录从电脑复制到外置HDD。一个application.exe文件的大小大约是4MB,但是其他大部分文件的大小只有几十KB,并且这些文件相比于4MB的大文件来说,复制/移动的时间更长。

传输数据的时候,如果是移动一个大文件,那么只需要写一次目录项,然后把数据连续地写入就可以了。如果是很多个文件的话,就要写目录信息,再跳到文件区域写数据,然后再回来写下一个文件的目录项,再跳回去写数据,如此反复。

如果是进行小文件传输,那么在源端就有一个open + read + close,在目标端就有一个open + write + close,并且在目标端还要创建所有相关属性(ctime / atime / mtime等)。碎片(需要更多的寻道时间)也会影响数据速率。比如sata通道的堵塞也可能是一个问题。这也是为什么大文件有更长的连续读或写,传输速度更快,而小文件传输却很慢。

这是Windows的工作方式,也是HDD不好的地方。通常来说,SSD在复制小文件方面表现得更好。您可以看一下关于HDD和SSD的文件传输速度的基准测试。但是您也要知道还有其他因素,比如Windows先读取文件,然后由防病毒软件检查它们,然后再把它们写入新的目标文件夹。更别说剪切文件时,还要加上删除过程。所以,文件越多,就需要越多的“实时”时间来复制更多的文件。

由于写入(外部)HDD的数据没有被缓存,而是直接写入HDD,而且USB驱动器还要为每个文件处理索引(FAT, Allocation Table),所以必须把HDD缓存从文件数据切换到文件分配数据。因为如果在缓存时出现故障,则文件会丢失,HDD会损坏等等。内部驱动器可以被缓存。然后它可以把文件快速地写入硬盘。实际上,它们会像整个商业计算机行业那样让您减速。USB硬盘驱动器上的其他驱动程序不是智能驱动器,也不是硬盘驱动器。人们想要便宜的东西。他们不会在硬盘的说明中说出来,不,当然不会。他们只提到大文件传输速率。

您可以这样想象,分配了一个任务,从A点到B点拿走10本书(10个文件),如果它们是分开的,则计算机需要把它拿到B点再回到A点去拿下一本书等等。而如果只需要拿一本和10本书总重量相当的大书,则搬运书的时间会更久,但是由于计算机只要走一趟,所以这会是一个更快的过程。

那么针对小文件传输慢,需要复制较小的文件时候,海量的小文件传输效率低下的情况,镭速(企业、社会组织用户可申请免费试用)提供海量级的小文件传输优化方案,小文件传输每秒5000个以上,百万数量级文件能在5分钟内完成列表,相同文件秒传速度可达每秒20000个,速度比传统的FTP快100倍以上。

跨国传输速度对比

从中国到美国,使用镭速传输海量小文件,比公司同一区域两台机器互传还快。

从上面的分析可以看出,小文件传输慢的原因主要有以下几点:文件系统的结构,硬盘驱动器的性能,操作系统的处理方式,防病毒软件的干扰等。这些因素都会影响小文件传输的效率和速度,导致用户在工作中遇到困难和麻烦。

为了解决这个问题,我们需要采用一些小文件传输的优化方案,比如使用SSD替代HDD,关闭不必要的防病毒软件,使用专业的小文件传输软件等。这些方案都可以提高小文件传输的效率和速度,让用户在工作中更加顺畅和高效。

如果您也经常需要进行小文件传输,镭速软件还是不错的。镭速软件可以在工作中轻松应对海量的小文件传输任务,节省工作时间和精力,提升工作效率和质量。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

MyBatis查询数据库(3)

前言🍭 ❤️❤️❤️SSM专栏更新中,各位大佬觉得写得不错,支持一下,感谢了!❤️❤️❤️ Spring Spring MVC MyBatis_冷兮雪的博客-CSDN博客 前面我们讲解了MyBatis增删改查基本操作,下面我们来深入了解M…

谷歌语音助手战略调整:开发 AI 新版,调整裁员计划

北京时间8月2日晚间,谷歌通过对 “谷歌助手” 团队进行调整和裁员,意图改变其开发方向。经过此次变动,谷歌计划借助最新的生成式人工智能技术和大型语言模型来提升 谷歌助手 的能力。此次调整表明语音助手市场未达到先前的预期。 亚马逊旗下的…

PT Industrial Security Incident Manager 扩展了对 Emerson 和 GE Fanuc 控制器的支持

🔄 我们发布了 PT Industrial Security Incident Manager (PT ISIM) 深度流程流量分析系统的下一套专业知识。 有哪些新功能? 1. 改进了 GE Fanuc (Emerson) GE-SRTP 协议的操作。该协议专为 GE Fanuc 控制器与工程软件(Proficy Machine E…

ArmSoM-W3之RK3588安装Qt+opencv+采集摄像头画面

1. 简介 场景:在RK3588上做qt开发工作 RK3588安装Qtopencv采集摄像头画面 2. 环境介绍 这里使用了OpenCV所带的库函数捕获摄像头的视频图像。 硬件环境: ArmSoM-RK3588开发板、(MIPI-DSI)摄像头 软件版本: OS&…

angular框架——node_modules引入ng-zorro-antd问题

发生错误 在安装npm包(ng-zorro-antd)的时候,报错如下 原因 项目依赖的ng-zorro-antd版本号和引用包的17.0.2版本号不一致,项目使用的16.13.1版本号太高了,无法解析依赖树中低版本。 解决方案 : 命令修…

pointpillars的demo过程记录

1、进入pp conda activate pp 2、cd到/home/fyy/OpenPCDet-master/tools打开终端 python demo.py --cfg_file cfgs/kitti_models/pointpillar.yaml --ckpt /home/fyy/OpenPCDet-master/pointpillar_7728\ \(1\).pth --data 000009.bin 直接就可以demo显示了

数据库同步时,通过存储过程找出时间内发生变化的视图和物化视图

1. 应用场景 在软件开发或数据库运维过程,每一次数据库同步都是运维人员的痛苦的过程。 如果每次都是无脑全量更新,则工作量较大如果每次都是增量更新,则需要知道哪些视图谁在什么时候修改了,增加了什么信息(因为往往…

(学习笔记-内存管理)内存满了会发生什么?

内存分配过程 应用程序通过 malloc 函数申请内存的时候,实际上申请的是虚拟内存,此时并不会分配物理内存。 当应用程序读写了这块虚拟内存,CPU就会去访问这个虚拟内存,这时会发现这个虚拟内存没有映射到物理内存,CPU…

【WiFi】国产WiFi芯片

目录 1.概述 2.WiFi芯片的市场格局 3.中国的WiFi芯片公司 3.1.华为海思 3.2.乐鑫科技 3.3.博通集成 3.4.紫光展锐 3.5.康希通信 3.6.南方硅谷 4.国产WiFi芯片竞争格局 4.1.内卷WiFi 4 4.2.缺席WiFi 5 4.3.发力WiFi 6 4.4.逐鹿WiFi 7 5.不得不提的WiFi FEM 1.概述…

视频创作者福音,蝰蛇峡谷NUC12SNKI7视频剪辑测评

英特尔NUC绝对是PC市场里最为特殊的产品,相比众多OEM设计制造的台式机而言,英特尔NUC主打小体积、高度集成化、强扩展性以及尽可能优异的性能表现。尤其是在主打游戏体验的NUC产品出现之后,更是将极致体验演绎到了极致。 在搭载独显的幻影峡谷…

Python爬虫教程篇+图形化整理数据(数学建模可用)

一、首先我们先看要求 1.写一个爬虫程序 2、爬取目标网站数据,关键项不能少于5项。 3、存储数据到数据库,可以进行增删改查操作。 4、扩展:将库中数据进行可视化展示。 二、操作步骤: 首先我们根据要求找到一个适合自己的网…

gitlab CI/CD 安装 gitlab runner

一、为什么需要安装gitlab runner ? 极狐GitLab Runner 极狐GitLab Runner 是在流水线中运行作业的应用,与极狐GitLab CI/CD 配合运作。 说白了就是你部署的一个agent。 二、如何安装? 1.介绍通过helm部署github runner 2.helm添加仓库 h…

k8s kubeedge安装metrics-server监控节点cpu内存使用情况

k8s kubeedge安装metrics-server监控节点cpu内存使用情况 官方安装地址: https://kubeedge.io/en/docs/advanced/metrics/ k8s的master节点上安装metrics-server #在k8s的master节点上执行#创建目录 mkdir metrics-server #下载deploy文件 wget https://github.com/kubernet…

ansible安装及rhel8仓库配置

目录 一、本地仓库 问题: 解决: 1.创建一个仓库: 内容: 2.挂载: 挂载: 测试: 3.或者直接使用阿里云的源 二.配置ansible仓库 1.下载: 2.检查 一、本地仓库 问题: 当…

史上最细,接口自动化测试框架-Pytest+Allure+Excel整理(代码)

目录:导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜) 前言 Allure框架 Allu…

第一百二十天学习记录::计算机硬件技术基础:存储器及存储管理

分级存储器系统 存储器从内到外分为四级:内部寄存器、高速缓冲存储器、内存储器和外存储器。它们在存取速度上逐级递减,在存储容量上逐级递增。 内部寄存器 内部寄存器是计算机处理器内部的一种高速缓存,是用来存储临时数据和指令等信息的…

python与深度学习(十四):CNN和IKUN模型二

目录 1. 说明2. IKUN模型的CNN模型测试2.1 导入相关库2.2 加载模型2.3 设置保存图片的路径2.4 加载图片2.5 图片预处理2.6 对图片进行预测2.7 显示图片 3. 完整代码和显示结果4. 多张图片进行测试的完整代码以及结果 1. 说明 本篇文章是对上篇文章猫狗大战训练的模型进行测试。…

opencv 31-图像平滑处理-方框滤波cv2.boxFilter()

方框滤波(Box Filtering)是一种简单的图像平滑处理方法,它主要用于去除图像中的噪声和减少细节,同时保持图像的整体亮度分布。 方框滤波的原理很简单:对于图像中的每个像素,将其周围的一个固定大小的邻域内…

DP-GAN剩余代码

在前面计算完损失后,该进行更新: 1:netEMA是模型的生成器: 遍历生成器的state_dict,将每一个键对应的值乘以EMA_decay。 接着根据当前迭代步数计算num_upd,每1000,2500,10000代倍数就执行一次。 当num…

MyBatis查询数据库1(概念+创建项目+基础交互)

目录 1.MyBatis是什么? 2.为什么学习MyBatis? 3. 怎么学 MyBatis 4.第⼀个MyBatis查询 4.1 添加MyBatis框架支持 4.1.1老项目添加MyBatis 4.1.2 新项目添加MyBatis 4.2 配置连接字符串和MyBatis 4.2.1 配置连接字符串 4.2.2 配置 MyBatis 中的…