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

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

假如我要把一个便携式软件目录从电脑复制到外置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.mzph.cn/news/19570.shtml

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

相关文章

Mybatis插件

文章目录 1. 如何自定义插件1.1 创建接口Interceptor的实现类1.2 配置拦截器1.3 运行程序 2. 插件原理2.1 解析过程2.2 创建代理对象2.2.1 Executor2.2.2 StatementHandler2.2. 3ParameterHandler2.2.4 ResultSetHandler 2.3 执行流程2.4 多拦截器的执行顺序 3. PageHelper3.1 …

聊天系统登录后端实现

定义返回的数据格式 # Restful API from flask import jsonifyclass HttpCode(object):# 响应正常ok 200# 没有登陆错误unloginerror 401# 没有权限错误permissionerror 403# 客户端参数错误paramserror 400# 服务器错误servererror 500def _restful_result(code, messa…

Matlab Optimization Toolbox中的遗传算法工具包(GA)

matlab optimization 中使用了GA求解器 默认的是小于等于 找到GA 工具包 找到 APP选择 Optimization Tool 选择Solver ga - Genetic Algorithm 应用GA solver 定义适应度函数(Fitness function)与问题约束(Constraints) example one 优化函数 sin(x) 2 * cos(x)极其重要的…

windows10 设置代理

场景:同一个办公室,只有A的电脑有权限访问网站 http://10.129.129.129:5601, 那办公室其他B,C同学想访问 http://10.129.129.129:5601,需要怎么处理? A 同学电脑安装代理软件: 1. 下载wproxy IMFirewall, …

iMX6ULL驱动开发 | 让imx6ull开发板支持usb接口FC游戏手柄

手边有一闲置的linux开发板iMX6ULL一直在吃灰,不用来搞点事情,总觉得对不住它。业余打发时间就玩起来吧,总比刷某音强。从某多多上8块儿大洋买来一个usb接口的游戏手柄,让开发板支持以下它,后续就可以接着在上面玩童年…

信息学奥赛一本通——1258:【例9.2】数字金字塔

文章目录 题目【题目描述】【输入】【输出】【输入样例】【输出样例】 AC代码 题目 【题目描述】 观察下面的数字金字塔。写一个程序查找从最高点到底部任意处结束的路径,使路径经过数字的和最大。每一步可以从当前点走到左下方的点也可以到达右下方的点。 在上面…

VS2019编译安装OpenMesh8.0

文章目录 一、简介二、相关准备三、编译安装四、举个栗子参考资料一、简介 多边形网格一直以来就是交互式3D图形应用程序中最合适的几何表示,它们足够灵活,可以近似任意形状,并且可以通过当前的图形硬件有效地处理,即使在今天的低成本电脑上也是如此。OpenMesh便是其中一种…

Java-很深我只知其一-泛型

Java-很深我只知其一-泛型 目录 泛型历史 泛型类/泛型接口 泛型方法 泛型属性 泛型约束 泛型历史 JAVA 泛型(generics)是 JDK 5 中引入的一个新特性, 允许程序员在编程时指定类型参数,使编译器可以在编译代码时检测到非法的类型。泛型的…

相交链表 LeetCode热题100

题目 给你两个单链表的头节点 headA 和 headB ,请你找出并返回两个单链表相交的起始节点。如果两个链表不存在相交节点,返回 null 。 题目数据 保证 整个链式结构中不存在环。 思路 使用两个指针x,y同时遍历两个链表A和B。 当两个链表有相交节点时&am…

小研究 - 主动式微服务细粒度弹性缩放算法研究(四)

微服务架构已成为云数据中心的基本服务架构。但目前关于微服务系统弹性缩放的研究大多是基于服务或实例级别的水平缩放,忽略了能够充分利用单台服务器资源的细粒度垂直缩放,从而导致资源浪费。为此,本文设计了主动式微服务细粒度弹性缩放算法…

Centos安装libwebcam库运行 uvcdynctrl 命令

Centos 软件包仓库中没有 libwebcam 库,因此需要下载源文件手动编译 源文件地址:https://github.com/lucasrangit/libwebcam 解压后进入项目文件夹 mkdir build cd build cmake .. make make install 如果使用uvcdynctrl提示找不到库,则 vi…

k8s apiserver如何支持http访问?

原本是可以通过设置api-server的--insecure-port来实现,但是这个参数已经被废弃了,更好的方法则是使用proxy来实现: 在集群任意一个节点上起一个proxy服务,并设置允许所有host访问: kubectl proxy --address0.0.0.0 …

Java 版 spring cloud + spring boot 工程系统管理 工程项目管理系统源码 工程项目各模块及其功能点清单

工程项目各模块及其功能点清单 一、系统管理 1、数据字典:实现对数据字典标签的增删改查操作 2、编码管理:实现对系统编码的增删改查操作 3、用户管理:管理和查看用户角色 4、菜单管理:实现对系统菜单的增删改查操…

基于以太坊+IPFS的去中心化数据交易方法及平台

自己的论文,哎费事 目录 基于以太坊IPFS的去中心化数据交易方法及平台 基于以太坊IPFS的去中心化数据交易方法及平台 摘要: 数据交易过程中存在数据权属不明和数据安全问题。本文开发了一种基于以太坊IPFS的去中心化数据交易方法及平台。方法包括&am…

IPv4网络用户访问IPv6网络服务器

NAT64静态映射为一对一的对应关系&#xff0c;通常应用在IPv4网络主动访问IPv6网络的场景中。 要求位于IPv4网络中的PC通过IPv4地址1.1.1.10能够直接访问位于IPv6网络中Server。 操作步骤 配置FW。 # 配置接口GigabitEthernet 0/0/1的IPv4地址。 <FW> system-view [F…

使用okHttp不走代理问题

背景 okHttp处理流程 okHttp & 代理 为什么没走代理 okhttp选择proxy时&#xff0c;现将传入的url传换为uri&#xff0c;如果uri的host为空&#xff0c;okhttp选择直连url&#xff0c;放弃走代理 okhttp3.internal.connection.RouteSelector private fun resetNextProxy(…

1047. 删除字符串中的所有相邻重复项

给出由小写字母组成的字符串 S&#xff0c;重复项删除操作会选择两个相邻且相同的字母&#xff0c;并删除它们。 在 S 上反复执行重复项删除操作&#xff0c;直到无法继续删除。 在完成所有重复项删除操作后返回最终的字符串。答案保证唯一。 示例&#xff1a; 输入&#xff1a…

FFmpeg-channel rematrix

channel rematrix Channel rematrix 是一种音频处理技术&#xff0c;用于将多声道音频转换为不同的多声道格式。它可以将一个多声道音频信号从一种布局转换为另一种布局&#xff0c;例如从 5.1 到 7.1 或从立体声到环绕声。 ffmpeg中的rematrix可以通过fixter完成&#xff0c…

IP 工具

什么是IP 工具 IP 工具是用于轻松扫描和排除网络 IP 地址空间故障的网络工程工具。IP 工具使网络管理员能够审核、跟踪和监视 IP 地址、子网以及使用 IP 的设备和主机的性能。这个全面的网络工程工具集包括高级 IP 工具&#xff0c;如 Ping、系统资源管理器、MAC 地址解析器和…

[SQL挖掘机] - 存储过程

介绍: 当你在sql中需要多次执行相同的一组sql语句时&#xff0c;存储过程是一个非常有用的工具。它是一段预先定义好的sql代码块&#xff0c;可以被命名并保存在数据库中&#xff0c;以便重复使用。 存储过程可以包含多个sql语句、逻辑流程、条件判断和循环等&#xff0c;可以…