日本电子维修技术 网络windows共享的smb的多通道技术就是个垃圾




听说取这样的标题容易吸引人。我来讲讲我遇到什么样的问题,换了机器,网卡,交换机,故障百分百重现。各位有兴趣的可以试试。希望是我的系统有问题而不是smb协议存在bug。

拓扑很简单,一句话说得清,就不画图了,
PC_A使用一根10G链路接交换机,该交换机上三根1G链路接PC_B的三个网卡。两台PC的四个网卡配置的四个ip,在同一网段,PC_B的三条链路未作聚合。两台Pc是win10,使用内存虚拟硬盘。不存在读写瓶颈。
上述链路通过iperf3测试过,双向均能跑满。

众所周知,smb支持多通道。我的测试如下:两台PC无论谁做client,谁做server,从PC_B传输文件到PC_A,稳稳地在330+MB/s。PC_B的三条1G链路都能跑满。然而,从PC_A传输文件到PC_B,速率不稳定且低。在20-60MB/s之间抖动,PC_B的三条链路都均分流量(此处有wireshark抓包),但是速率很低。要是断开PC_B的任意两条线路,只保留一条,该方向的文件传输速率马上提升并稳定在110MB/s。

前边提到的抓包,在PC_B的某条1G链路上抓的包,发现大量的TCP Dup ACK,由于tcp知识不太扎实,也搞具体为啥。

各位有条件的基友可以试试,注意某一端只能有一条链路,所以需要万兆+多条千兆的环境。咦,那么千兆+多条百兆的场景会不会有这个问题呢,改天找时间试一下。
----------一下20200112更新-------------
补充操作系统、网卡信息
PC_A,win10 1809,网卡Mellanox ConnectX-4 Lx,虽然是单口25G的sfp+,但用的是10G的模块。
PC_B,win10 1809,网卡是intel 710四口万兆,虽然是10G的sfp+,10G的电口,但是交换机上插的是千兆口,协商为千兆使用。(PC_A和PC_B通过交换机万兆互联,iperf3测过速,10G跑满。所以不用建议我使用纯10G网络规避这个问题,我只是想讨论1个10G对多个1G 这种环境下smb或者tcp或者交换机存在的问题)



评论
是不是同一台机器  有1gb +10gb 两种网卡?

评论
TCP Dup ACK在几乎不可能丢包的LAN环境下出现的原因极有可能是到达网卡的数据包顺序被打乱。
比如客户端先收到了1号包后先收到了3号包,那客户端就会不断的发送同样的ACK来请求服务器重新传输2号数据包,直到2号数据包到达。

你这种情况极有可能是数据包在交换机上被打乱了顺序然后扔给了三个网卡

评论
发生了什么以及为什么都还没弄明白就下好了结论...

评论

跟三楼说的差不多,我是路由器分交换机分nas,和路由器分电脑,这种情况下,nas至电脑的速度就只有一半,再低一点。反之满速

评论
全部使用万兆 ,别折腾什么乱七八糟的SMB多通道之类的。
别以为Win10不好,Linux下的SMB3更是各种奇葩问题,甚至Ubuntu和CentOS下的问题都各不相同,但结果是出奇的一致,就是不好用。

一个完美的协议,应该是不同操作系统实现后,都能简单的傻瓜式配置,插上网线dhcp就能正常满速,SMB肯定不是这种协议。

评论

那万兆用什么协议好?

评论

首先请说清楚服务器和客户端的操作系统版本。
其次请写明网卡的型号(建议同型号,支持RSS功能)。

注:TCP Dup ACK的出现,说明网络通讯质量差,数据包需要重组。
参考文档:https://docs.microsoft.com/zh-cn ... server-smb-overview                 https://blog.51cto.com/wzde2012/2043510   (补充)

文档是英文而且是windows2012R2,但是还是有参考价值。因为微软建议网卡支持RSS(品牌最好一致)功能,如果你硬件没达到要求,就不要轻易下结论。有条件的话三张网卡分别设定于不通过网段,这样有利于分析问题。





评论
试试开个ftp传传看。乱序交换机、OS和sw都有嫌疑

评论

三张网卡都没有在交换机上面配置链路聚合,为啥你会说交换机乱序发送?



评论

买最普通的万兆SPF+网卡,Windows 2016/2012//10/7,Ubuntu 18.04/16.04下一切正常,什么都不用设置什么都不用改。

评论

大哥,请问有什么好的共享方式?或者什么协议吗?我就是被Windows10的这个共享气死了,原本打算整个x99平台,安装Windows server 2019的,但是一直没有整好这个共享问题。我都准备再攒点钱,直接上个1819+了。我太难了。

评论
我也准备用万兆网卡了

之前在另外一台服务器上配置了4块千兆网卡LACP链路聚合,网上邻居只能跑一个卡满速(对应一台客户机)

FreeNAS 的双口千兆网卡配置LACP链路聚合以后,网上邻居也是只能跑一个千兆满速(对应一台客户机)

想跑出超过1000兆的速度,需要多台机器访问。。。。

然而两台万兆网卡的机器对拷,直接就是磁盘系统的最大速度,没有折扣,很好。

评论
另外,我从万兆网卡的机器访问LACP链路聚合的服务器,也是单网卡的速度,因为Win7和FreeNAS不支持多通道SMB

链路聚合唯一的好处是三五台客户机同时访问FreeNAS,带宽会高一些,但这时机械盘的阵列又成为瓶颈了。

评论
我也准备直接万兆交换机+万兆网卡了
我是PC 1G+2.5G网卡,NAS 1G+10G网卡。
两张1G网卡在同一网段下,2.5G和10G直连。
结果Win10 SMB传文件永远只走1G那张卡,即使我输入的SMB地址是10G卡的地址,还是坚定不移的走1G线路,甚至在hosts里把NAS的主机名强制解析到10G卡的IP上,还是走1G,我都头炸了,还是直接全万兆吧。

评论

因为我不知道正常的LAN能做的线路多差才会导致收发包乱序。
而且楼主所说的现象我能推断出的只有 1.两台电脑互相识别并成功启用了多通道 2. 由1可得,这张10G网卡一定支持RSS(不然不可能单网卡启用多通道)。
由于缺乏更为详细的文档,我无从得知这张10G网卡发出的多个TCP/IP连接在交换机上是如何被分配到另一台电脑的三个网口上的,因此我只能猜测交换机用了种SMB本身不喜欢的方式让接收方看来收到了并不想要的包。


评论

powershell一条命令就能搞定了,禁用之后,你哪个ip访问 ,他就只走哪个

查看多通道功能是否启用
Get-SmbServerConfiguration

禁用多通道功能
Set-SmbServerConfiguration -EnableMultiChannel 0

我目前是
PC-NAS 之间采用10G光纤直连,172.17.0.1/24
同时PC,NAS,其余乱七八糟东西连接至普通千兆路由器,192.168.1.1/24

乱七八糟设备访问nas走192网段,PC访问NAS走172网段,互不影响,各自满速,规划远期哪个设备有新增10G访问需求,要么就围绕NAS星型扩展,要么就加个万兆交换机


评论

可以搜索我的帖子看看,我用的就是windows共享(smb协议),但是仅使用文件共享功能,不使用各种“高级”的所谓多路复用之类。

连接速度十几年前用的是千兆,后来折腾MicroServer Gen8开始使用链路聚合,现在用的就是去年折腾的万兆SPF+网卡了。

评论

你有很多原理没搞懂,我就不跟你解析。

评论
Netsh interface tcp 下面有一堆参数,调下试试?

评论
换万兆,别折腾了

评论
此时   不懂  也没有这种需求得一位网友路过~~~~  学习学习

评论
在用smb3.0,但是有时候莫名其妙速度只有一半。百思不得其解。

评论
lz怀疑的是smb的坑,那最简单的对比就是跑个ftp。

评论

没有,测试的环境A机只有一个10G网卡。B机有4个1G网卡。启用了3个。

评论

操作系统和网卡信息我补充在1楼了。
三张网卡设定在不同网段的测试我考虑过,但是由于不同网段的话,主机名这个信息广播不出去,PC_B的三种网卡中只能选一张网卡的IP来做客户端或者服务器端,估计就没法多通道了

评论

我刚才试了FTP,因为PC_B有三个网卡,三个IP地址,使用PC_B主机名代替具体的IP,但是数据只会跑一个千兆链路,请问一下要怎么才能使ftp的一个会话走三个网卡?

评论

LACP的链路聚合,不管采用何种负载方式,对于同一个会话,只能走聚合链路中其中一个链路。
一对一的传输,链路聚合并不能提升带宽。

评论

通过在PC_A上对10G网卡流量进行抓包,可以看到,PC_A网卡发出的数据帧在二层已经把PC_B多个网卡的mac地址作为目的地址发送了,哪个包发PC_B的哪个网卡都已经安排好了,这个分配在PC_A上的smb进程(到底是不是smb分派的我还没认真研究)已经完成。
交换机按照mac地址转发就行了,交换机肯定不会背什么锅的。

评论

我两台PC_B的四个网卡本身就是万兆的,只是偶然发现这个问题,想探索一下这种环境下smb存在的问题,故意插在交换机的千兆口上协商为千兆测试。
我刚才试了FTP,因为PC_B有三个网卡,三个IP地址,使用PC_B主机名代替具体的IP,但是数据只会跑一个千兆链路,请问一下要怎么才能使ftp的一个会话走三个网卡?

评论

存储/转发 的交换机,流量控制可以给每个数据包添加不同的延迟。

如果链路拥堵(高速灌低速),数据包延迟会比较明显。

评论

请看我给你的链接(补充),里面由详细设置。
(我理解的)SMB3.0是一种单会话多链接的协议。会话的SIP是服务器管理IP,在这个案例里指共享的IP地址(共享方式可以是服务器主机名或者直接访问服务器的IP地址)DIP是指客户端的IP地址。所以网卡的IP段不会影响SMB3.0的运作。
ServerA-ClientB出问题,我猜测是接收端的RSS出问题了(https://www.intel.com/content/ww ... ernet-products.html),因为该文档没写win10可以支持RSS,但操作系统需要调用X710-DA4的RSS,这就矛盾了。至于交换机端口做了手动定义速率,这影响不大,毕竟ServerB-ClinetA没有出错。


评论
我也准备上万兆网络,NAS有阵列,需要跑满文件I/O的带宽,现在拿不定主意是用多口千兆网卡SMB多通道汇聚,还是直接万兆光卡双机直连,哪种方案比较实惠呢?
我的机器,Gen8、HP Z230SFF工作站

评论

其实都不用万兆,单个千兆做cilent,双千兆做server,两边同时开启smbv3,那么就会出现这种速度既慢又不稳定的情况。

补充:楼主我已找到解决办法,我是在双千兆对单千兆的设备上出现了相同的问题,我今天把交换机的流控(主要是server那边的)强制开启了,然后就解决了,这样client这边如果是双千兆那么就会开启多通道跑满双千兆,如果是单千兆那么也能跑满单千兆,server那边是两个网卡对半分流量,不会再出现速度忽快忽慢的情况了。
环境:
Server:WIndows10 2004 i350+X557VF
Client:Windows10 1909 i210AT×2
交换机:水星SG124D PRO
我暂时没万兆环境,如果楼主你的交换机能开流控的话那么可以试试。
补充2:
今天又换了两个交换机试了一下,一个是傻瓜交换机,完全没问题,一个是中兴的三层网管交换机(5228F),所有端口开启或关闭流控均出现上述降速问题,目前无解,之后会更新万兆环境下的结果
2020.11.24补充:
中兴交换机的流控有BUG,没生效。所以最终结局方案就是交换机开启流控,网卡支持流控,就不会出现问题了,LZ交换机肯定是比较高级的网管型号,这种基本都默认关闭流控所以出问题了。傻瓜交换机基本默认开流控所以没问题,这就是为啥网上抱怨相关问题的人很少,很难找到解决方案的原因。
2021.9.13补充:
偶然看到这个帖子,再来说下吧,后来换了crs312之后,开启流控后,并没有再出现这个问题,无论server和client之间的速率是如何的不匹配都不会降速。这里吐槽一下中兴的5228f,后来出了新固件之后费尽心思弄到了,结果流控依然没有生效。
实际上这个流控也并不仅仅是smb3的时候有需要,打个比方,透过wifi6访问我的nas,如果通过ip强制指定为万兆口,那速度大概只有40-50MB/S,如果强制走千兆口则跑满千兆,但是假如开启流控之后直接透过主机名(或者任意一个网口ip)访问,均跑满千兆,不会出现降速问题,但是这个问题不具有普遍性,我也没看到过其他人抱怨,反正我是通过开启流控解决了。

评论
用NFS主力

评论

WIN不知道,群晖下面吧SMB的加密给关了,LINUX下面,别用自带的SMB服务,去下一个SMB包自己编译,性能要好很多

评论

nfs很久以前bug/协议一堆问题才“相对”开始各家上smb,不知道现在怎么样了

评论

900G小文件和空文件跟灾备实时sync,加上本地每天产生5T左右大文件,一年多关机两次,都是因为停电

评论

你终于解决了我困扰已久的问题,我就是群晖万兆+千兆同时插上,结果流量走了千兆,速度上不去,一直没解决,只能拔了千兆,刚才无意中翻到,终于解决了我的问题了

评论


这就很神奇了,如果是Windows下万兆+千兆的话,smb3下Windows直接忽视千兆了,流量全部从万兆口走。我也有考虑过因为网卡型号导致smb3不启用的问题,但是我用双口万兆网卡指定为千兆速率之后同样是这样。
不过比较蠢的是Windows似乎是通过网卡协商速率来硬切分的,我之前用virtio配合万兆网卡的时候就会出问题,因为virtio的协商速率是100G。

评论
SMB协议就是这样,很多不完善的地方,还涉及硬件驱动层,不同版本兼容性也不好,如果不是windows默认共享用这个协议早被淘汰了

评论
本来用的smb多通道,买了好几个千兆网卡,确实时不时来点奇怪的问题,现在还是换成了万兆。。。 电路 电子 维修 我现在把定影部分拆出来了。想换下滚,因为卡纸。但是我发现灯管挡住了。拆不了。不会拆。论坛里的高手拆解过吗? 评论 认真看,认真瞧。果然有收 电路 电子 维修 求创维42c08RD电路图 评论 电视的图纸很少见 评论 电视的图纸很少见 评论 创维的图纸你要说 版号,不然无能为力 评论 板号5800-p42ALM-0050 168P-P42CLM-01
 ·日本中文新闻 唐田绘里香为新剧《极恶女王》剃光头 展现演员决心
·日本中文新闻 真子小室夫妇新居引发隐私担忧
·日本中文新闻 前AKB48成员柏木由纪与搞笑艺人交往曝光
·日本学校 {日本国际学校}梅田インターナショナルスクール
·日本学校 LINE:sm287 陳雨菲、20歳、台湾からの留学生、東京に来たばかり
·日本留学生活 出售平成22年走行48000km 代步小车
·日本华人网络交流 円相場 一時1ドル=140円台まで上昇?
·日本华人网络交流 问日本华人一个问题
·日本旅游代购 富山接机
 ·生活百科 英国转澳大利亚转换插头
·汽车 【求助】修车遇到困难怎么办?

维修经验

CPUcpu-z 1.77版低调发布

日本维修技术更新: New benchmark “submit and compare” feature New clocks dialog reporting all system’s clock speeds in real-time Preliminary support for Intel Kaby Lake AMD Bristol Ridge processors 主要是增加了支持I、A两个新架构的 ...

维修经验

CPU这几天经常开机黑屏,热重启后又正常

日本维修技术这几天经常开机黑屏,热重启后又正常,今天热重启也不管用了。折腾半天总算点亮,显示超频失败,以前出这个画面我是不理它的,直接重启就能正常进系统了,今天不敢托大,因为 ...

维修经验

CPU超频求助!关于华擎H170和6700K

日本维修技术问题见楼主的show贴 https://www.chiphell.com/thread-1634895-1-1.html 这次华擎的H170 Hyper最大的特色应该是自带时钟发生器可以自由超外频 可是楼主好久没有折腾超频了。。。 两图中除了CPU外频 以 ...

维修经验

CPU液态金属会侵蚀cpu核心吗?

日本维修技术前阵子看到有人说,液态金属时间长了会侵蚀cpu铜盖,那么问题来了,这货会不会侵蚀核心呢? 评论 这玩意儿好像只对铝起反应 评论 不是说,cpu的盖子是铜的吗。。。 评论 不会,核 ...

维修经验

CPUm6i究竟支不支持e3 1231v3

日本维修技术官网上看支持列表没写有e3 1231v3,装机帖又有人晒,百度也没个明确答案,那究竟能不能点亮?有在用的chher说一下么 评论 升级最新bios肯定可以支持 评论 我的p67evo官网上也没说支持12 ...

维修经验

CPU华擎 HYPER 妖板 正确玩法

日本维修技术600元的 B150,10相供电,释放洪荒之力 注意必须官网 Beta 区的 BIOS 有 AVX 的 CPU 可能会掉缓存 启动时按 X 键激活 SKY OC,重启后进入 BIOS 160924164727.jpg (95.63 KB, 下载次数: 1) 2016-9-24 17:47 上传 ...

维修经验

CPUE5 2686 V3和i7 6800K如何选择

日本维修技术默认用,不超频,两者功耗是一模一样的 E5 2686 V3:2.0主频,3.5睿频, 18核心36线程 ,45M L3 咸鱼大约2500~3000元 i7 6800K : 3.5主频,3.8睿频 ,6核心12线程 ,盒装3000元 评论 性能应该是26 ...

维修经验

CPUHD530硬解4K能力还是有点弱呀!

日本维修技术播放器用PotPlay 64bit,各种优化后,跑4K @120Hz视频只能到70帧左右的速度,勉强能用! 显示器用的4K的优派VP2780 未标题-1.jpg (211.97 KB, 下载次数: 0) 2016-9-26 21:29 上传 评论 这个估计你没优化 ...

维修经验

CPU6900k 1.25V到4.2体质怎么样

日本维修技术如图,体质怎么样,ring是35,没敢试了,都说ring高了毁硬件 评论 不错的U,但不算雕,上4.4就大雕了,这电压上4.5的目前没见有人发图 评论 谢谢前辈告知 评论 我这个用1.2V超的4.2,R ...

维修经验

CPUI3 6100 华擎B150M pro4超4.5g测试。

日本维修技术看看论坛没多少i3 6100的帖子,就转下自己发的show贴里面的数据,给大家参考下。家里还有当年的神U i3 540 oc 4.5G在给老妈用。 不知道数据上正常吗?有6100的朋友可以告诉下,另外是不有 ...

维修经验

CPU7系u会兼容100系主板吗?

日本维修技术RT,听说要推200系板,100系还能用吗以后。。 评论 兼容的 评论 感谢!以后换u就行了,目前消息200系板会有新的特性吗? 评论 24条PCI-E 3.0通道、支持Intel Optane混合存储技术、十个USB 3 ...

维修经验

CPU有心入5820k了,求教下温度问题

日本维修技术一直徘徊在6700k和5820k之间,6700k现在这德行直接把我推向了5820k啊,从2600k升级上来,三大件都要换,现在唯一疑惑的是IB-E ex这种顶级风冷能不能压住4.5g的5820呢?毕竟刚刚买一个多月。 ...

维修经验

CPU6600&6600K才100的差价

日本维修技术太少了吧。。。 6600.JPG (106.91 KB, 下载次数: 0) 2016-10-1 10:30 上传 评论 毕竟只是i5而已…… 评论 上z170 6600也能超,等于没区别,差价能有100已经不错了 评论 然后又见不超频人士推荐超频 ...