做房地产用什么网站好,免费全能空间,东营市报名系统网站设计公司,小说网站首页模板服务器间FTP传输文件被限速问题的排查 问题描述具体问题软硬件环境文件传输方式的2种策略FTP相关信息问题表现问题解决结论 发散探讨——基于此问题进行发散研究相关知识从FileZilla软件入手从Windows入手从Linux入手从协议入手Windows和Linux的文件共享#xff0c;分别是使用… 服务器间FTP传输文件被限速问题的排查 问题描述具体问题软硬件环境文件传输方式的2种策略FTP相关信息问题表现问题解决结论 发散探讨——基于此问题进行发散研究相关知识从FileZilla软件入手从Windows入手从Linux入手从协议入手Windows和Linux的文件共享分别是使用什么协议 问题描述
具体问题
Linux使用FTP下载Windows上的文件FTP传输被明显限速。
软硬件环境
两台服务器之间需要大文件传输对比以往的业务我们将5GB以上的文件称为大文件。服务端为Windows 7操作系统客户端为银河麒麟v10视作Linux操作系统。万兆网口和千兆网口。
文件传输方式的2种策略
FTP服务客户端连接传输。Windows开放一个共享路径由Linux挂载mount命令后直接拷贝。
FTP相关信息
在Windows服务器上FTP服务使用FileZilla Server作为FTP服务。 在麒麟服务器上用于FTP连接客户端有2个方案FileZilla提供的图形化客户端、博主自己使用Java开发的客户端。
问题表现
在麒麟服务器上挂载了一个Windows服务器共享的远程位置需要使用直接拷贝到指定位置此时在Windows服务器的任务管理器测得的带宽利用率可达99.6%5GB文件传输10秒以内完成。麒麟服务器使用FileZilla客户端连接Windows服务器的FileZillaServer传输文件带宽利用率仅有30%5GB文件传输多次测得时间平均值为30秒。麒麟服务器使用Java自研的FTP客户端连接Windows服务器的FileZillaServer传输文件带宽利用率有所改善最快可达60%5GB文件传输多次测得时间平均值为15秒。 下图为某一次测试的带宽占用率对比图
问题解决
FileZilla客户端不满足性能指标不使用此方案。Java自研的FTP客户端虽然没有达到挂载那么高的速度但满足性能指标在更换多台服务器测试、优化稳定后最终采用此方案。
结论
可能是操作系统对于FileZilla软件进行了特殊限制也可能是FileZilla客户端底层的某些操作导致了操作系统的这种限制存在。
发散探讨——基于此问题进行发散研究相关知识
这个问题虽然解决了但仅是业务意义上的解决而不是技术上的解决。若本着效率至上的“技术服务于业务”原则确实不该继续深究但站在个人兴趣角度这个问题值得继续扩展探讨下去。
从FileZilla软件入手
基于软件问题入手排查博主找到这篇文章Ftp传输在win10下被系统限速的问题分析和解决。 文中提及Windows可能对FileZilla软件做出特殊优化性质的限制实验中使用先传输小文件再传输大文件的方式“骗”过了操作系统进而得以不被限制。这种方法是不可取的不具有普适性文中也说到此方法的弊端所以不采用此方法。而后文中提到了将FileZilla客户端的连接模式改为主动模式会有改变博主多次测试后发现FTP传输带宽利用率确实有5%的提高。但仍然是和挂载方式速度相去甚远。
从Windows入手
在网络中找到的相关文章——Win10 环境FileZilla client客户端出现兼容性限速问题的解决。 文中表示在FTP传输文件确实是被限速了需要对Qos参数进行优化即在Windows上运行以下命令 netsh int tcp set global autotuninglevelrestricted和netsh interface tcp set heuristics disabled。 即对接收窗口自动调节级别做出更改但我在尝试后并未解决。博主试过将FileZilla客户端设置为主动模式的同时也执行这两个命令再进行多次测试结果仍然是没有提升 在继续查询资料的时候在微软社区发现如下提问为什么win10/11会对smb和ftp的局域网分享传输速度限制这个提问和回答均值得一看提问者是有水平的 虽然我的问题来自于Windows 7但考虑其他可能性我还是阅读了这篇“提问者和回答者的交锋”。 此回答中也尝试过我们上面的接收窗口自动调节级别命令的方式来优化问题甚至重新安装了操作系统但可惜最后问题未能解决。
从Linux入手
接下来博主准备从Linux系统的方向上寻求解决方案便找到这篇文章掌握Linux TCP 窗口设置提高网络传输效率 (linux tcp 窗口设置)。文中提及的对TCP窗口大小进行修改我新增了如下net.ipv4.tcp_window_scaling1和net.ipv4.tcp_moderate_rcvbuf1配置后FTP传输带宽利用率有约5%的提升但后续无论如何调试修改参数均无法改变带宽利用率甚至有所降低。
既然问题无法通过配置的方式解决那么就需要考虑到协议层面的规则。
从协议入手
Windows和Linux的文件共享分别是使用什么协议
这个问题其实应该是“Windows的共享文件夹、Linux的挂载远程网络位置分别使用的是什么协议” 在Windows操作系统上共享文件夹通常使用的是SMB (Server Message Block)协议。SMB是一种广泛应用的网络文件共享协议尤其在Windows环境中它允许网络上的客户端访问服务器提供的文件系统资源如文件、目录、打印机等。现代版本的Windows系统默认使用的是SMBv2或更高版本。 在Linux操作系统上挂载远程网络位置尤其是来自其他Linux服务器或NAS设备最常使用的协议是NFS(Network File System)。NFS是一种专门设计用于跨网络共享文件系统的标准协议它允许一个系统通过网络像访问本地文件一样透明地访问远程服务器上的文件。NFS在Linux和其他类UNIX系统中广泛支持。 但我们的问题中即使用了Windows也使用了Linux。那么此时问题就变成了“如果Linux上挂载的网络位置是Windows上的共享文件夹那么此时使用的什么协议”
答案是SMB协议。因为Linux虽然有自己的NFS协议进行文件共享但若对方是来自Windows的共享Linux需要借助SMB客户端软件来与Windows系统进行通信。
在Linux中通常会使用名为“cifs-utils”的软件包来提供对SMB协议的支持。
至此由于时间限制未能达到最优的解决方案。不过发散的学习到了很多其他知识希望本文的观点和搜索的资料可以提供一些解决问题的思路以便诸位在解决相似问题的时候可以得到启发。