之前用了一根不知道哪来的,也不知道是什么分类的网线. 就是这个:
图: 很久前面的电脑包里面翻出来的.
有可能是CAT5 类线. 无从考证
在ESXI中, 网卡的速率是自适应的. 就是这里. 这个速率老是变来变去. 大部分时候是100Mbps. 手工改成100Mbps也是可以用的. 使用speedtest测试外网也可以把带宽跑满. 但是经常无故协商速率会掉下来.
图: esxi中的网卡相关的配置.
ESXI中的网卡经常掉到100Mbps
因此, 想简单升级一下网线. 这个本身机器自带的是四个intel的千兆网卡.按理现在这个也不算什么高级货. 我的小主机的网口都有2.5Gbps了. (嗯,奈何我的路由器AX3600只支持到1000Mbps.) , 所以就打算找一个够用的就行.
以下是我的了解到的网线的知识. 供参考备忘, 没有太多的时间详细了解. 不过用哪一个可以支持到千兆.那这个比较简单.
CAT5: 这个是最老的网线. 基本只支持到100Mbps , 这个已经很难找到了. CAT5E: 这个是对于标准来说,也只适合100Mbps的速度. 但是对于短距离来说 ( 比如1米? )是可以速度达到千兆的. 这个也许就是我的网速在100Mbps和 1000Mbps之间来回横跳的原因. CAT6: Cat 6网线支持最高传输速率10 Gbps,但在高于55米(约180英尺)的距离时,数据传输速率会降低至1 Gbps。Cat 6网线的最大带宽为250 MHz。 CAT6A: Cat 6a网线在整个100米(约328英尺)传输距离内均支持10 Gbps的传输速率,其最大带宽为500 MHz。
所以,如果是千兆网,实际上CAT5E都可以满足需求,只是可能存在不稳定性. 而CAT6与CAT6A都是万兆网线. 只是CAT6A的性能更好,带宽更高.传输距离会更远.
当时买的时候实际并没有太多时间去看明白. 听得较多的也是超6类. 实际上如果是千兆的话6类也是可以的. 更何况超5类不是也可以用的吗.
比如下面这个6类网线, 价格相对要更便宜一些 , 这个算下来是 6元/米.
而如果是超6类,这个价格就会相对贵一些. 我选择的是这个细线. 也是一米的.
这个线当时也没多想就直接下单了. 没有太多时间去了解. 拿到的时候,还是挺惊讶的.
编辑切换为居中
iphone的照相问题,有点糊.将就看吧
这个线拆开一看, 这不就是一根USB typec的线么. 这么细? 确实有一些惊艳到.
插在iLO口上的 CAT6A 网线
接下来对网速进行测试.
注意 1: 我测试时,使用了如下网络环境: 1. macbook pro 到 HPE GEN10 PLUS V2 这个是无线接入. (2.4G和5G均进行了测试) 2. HomeNas Ubuntu 到 HPE GEN10 PLUS V2 (这个两边的网络都是使用的千兆网线接入到 AX3600路由上) 这里使用的是iperf3版本进行测试的. 这个ubuntu与macOS的默认安装命令都是安装的版本2,因此这个需要注意. ubuntu: 安装命令: sudo apt install iperf3 MacOS: 安装命令: brew install iperf3 Windows Server 需要开启相关的防火墙设置才能连通.
在测试的时, server端使用的是Windows Server 2019 , Client端分别使用了 Ubuntu(有线) 和 MacOS (无线接入)两种方式.
另外,在windows server上要开放相应的测试端口后. Client端才能连接上Server端. 而开启相应的端口访问是在Windows的防火墙中进行设置的. 因为是server端,我们创建一个入站规则即可.
打开iperf3, 其在windows上的默认端口是5201;
因此我们需要创建一个TCP入站规则,端口为: 5201
进入防火墙的高级设置
新创建好的入站规则
测试结果
Ubuntu
分别测试一下ubuntu下的速度:
测试命令: iperf3 -c 192.168.31.176 -p 5201 -i 1 -t 30 命令释义: -c 工作在client模式. 192.168.31.176 我的内网测试服务器的地址 -p 5201 , iperf3测试server的端口. -i 1 数据发送间隔1秒一次 -t 30 整体测试30秒.
Ubuntu下面基本是能够跑满 1000兆
本地MacOS
由于mac是无线网络接入,因此网络带宽实际并没有有线连接快.
再看一下单向传输,只下载:
这个WIFI单连接在2.4G时只有红50Mbps, 而在5G连接时大概350Mbps.
此时我发现这其中的一些差异:
有线可以跑满千兆的带宽.WIFI不可以跑满.以上都是跑的单连接这说明, 这个网络链路中的 client , 路由器 , 以及 Server 在使用有线的时候是可以跑满千兆的. 而且这个server是使用的是XEON E2336这样的高性能的CPU. 理论上单线程跑满万兆都没有问题. (目前没有这样的网卡和路由器,无法进行测试.)
这样在有线可以跑满的情况下, 无线不可以跑满. 在整个测试中, 服务器的CPU占用都非常非常低.
说明此瓶颈不在Server端. 则有可能是在路由器端. 也有可能是在 Client端. 而我的AX3600最高带宽应该是不只350Mbps左右. 至少是可以达到1Gbps的.
数据来源: 科普:小米AX3600路由器新增的“MU-MIMO动态超频宽”究竟是什么? 它的原理其实很好理解,AX3600有4路5GHz天线,我们通过2路80MHz的频宽合并的方式达到了2*2 160MHz的效果。即可使得支持160MHz的设备可以获得160MHz频宽的大吞吐,?能让其他设备同时使用 4*4 80Mhz,得到更好的覆盖性。
根据我的macbookpro 2020 13寸的wifi规格: 我们知道这个机器支持的是WIFI5,也就是802.11ac
WIFI规格: 802.11ac Wi-Fi 无线网络; 兼容 IEEE 802.11a/b/g/n
而对于这个wifi的具体速度的,可以看苹果提供的相应的技术参数规格.
参考来源: MacBook Pro 无线局域网技术规格详细信息
13-inch, 2020, Four Thunderbolt 3 ports 的WIFI技术规格
而对于WIFI的速率相关的参数参考:
这个速率,在通道带宽是80MHZ的是ac (WIFI5)时的速率为433Mbps, 而这个本本的不在线是2个MIMO.因此整体的WIFI速率是在: 433*2 = 866Mbps.
因此, 从这个macbook Pro的wifi信道宽度上看, 我们的确没有把信道跑满. 而且,我们在测试外网速度的时候. 这个macbookpro的网卡都能跑到400Mbps以上. 因此上面的5Gwifi 肯定是没有跑满的.
对于AX3600支持 44 MIMO, 因此速率在 433*4 = 1.7Gbps , 那是不是我们可以使用多连接把这个带宽跑上去呢?
测试命令: [ MacBook-Pro ~]$iperf3 -c 192.168.31.176 -p 5201 -R -P 4
[ ID] Interval Transfer Bitrate[ 5] 0.00-10.00 sec 141 MBytes 118 Mbits/sec sender[ 5] 0.00-10.00 sec 141 MBytes 118 Mbits/sec receiver[ 7] 0.00-10.00 sec 137 MBytes 115 Mbits/sec sender[ 7] 0.00-10.00 sec 136 MBytes 114 Mbits/sec receiver[ 9] 0.00-10.00 sec 134 MBytes 112 Mbits/sec sender[ 9] 0.00-10.00 sec 133 MBytes 112 Mbits/sec receiver[ 11] 0.00-10.00 sec 146 MBytes 122 Mbits/sec sender[ 11] 0.00-10.00 sec 146 MBytes 122 Mbits/sec receiver[SUM] 0.00-10.00 sec 557 MBytes 467 Mbits/sec sender[SUM] 0.00-10.00 sec 556 MBytes 467 Mbits/sec receiver此时得到的带宽是 467Mbps, 有所提升.但是还是没有跑满,我们再跑到10个链接看看:
测试命令: iperf3 -c 192.168.31.176 -p 5201 -R -P 10
[ ID] Interval Transfer Bitrate[ 5] 0.00-10.00 sec 71.9 MBytes 60.3 Mbits/sec sender[ 5] 0.00-10.00 sec 71.9 MBytes 60.3 Mbits/sec receiver[ 7] 0.00-10.00 sec 69.9 MBytes 58.6 Mbits/sec sender[ 7] 0.00-10.00 sec 69.9 MBytes 58.6 Mbits/sec receiver[ 9] 0.00-10.00 sec 86.1 MBytes 72.2 Mbits/sec sender[ 9] 0.00-10.00 sec 86.1 MBytes 72.2 Mbits/sec receiver[ 11] 0.00-10.00 sec 79.2 MBytes 66.5 Mbits/sec sender[ 11] 0.00-10.00 sec 79.2 MBytes 66.5 Mbits/sec receiver[ 13] 0.00-10.00 sec 85.4 MBytes 71.6 Mbits/sec sender[ 13] 0.00-10.00 sec 85.3 MBytes 71.6 Mbits/sec receiver[ 15] 0.00-10.00 sec 89.9 MBytes 75.4 Mbits/sec sender[ 15] 0.00-10.00 sec 89.7 MBytes 75.2 Mbits/sec receiver[ 17] 0.00-10.00 sec 71.0 MBytes 59.6 Mbits/sec sender[ 17] 0.00-10.00 sec 71.0 MBytes 59.5 Mbits/sec receiver[ 19] 0.00-10.00 sec 83.6 MBytes 70.1 Mbits/sec sender[ 19] 0.00-10.00 sec 83.6 MBytes 70.1 Mbits/sec receiver[ 21] 0.00-10.00 sec 66.8 MBytes 56.0 Mbits/sec sender[ 21] 0.00-10.00 sec 66.6 MBytes 55.9 Mbits/sec receiver[ 23] 0.00-10.00 sec 69.8 MBytes 58.5 Mbits/sec sender[ 23] 0.00-10.00 sec 69.7 MBytes 58.5 Mbits/sec receiver[SUM] 0.00-10.00 sec 774 MBytes 649 Mbits/sec sender[SUM] 0.00-10.00 sec 773 MBytes 649 Mbits/sec receiver此时速率可以达到649Mbps了.
这个问题实际并不是我一个人遇到了. 这里给出两个来源的问题列表:
内网 Wi-Fi 测速,发现无法跑满设备上显示的速率为什么 iperf3 测wifi速度,单线程跑不满? (这个回答中有一个是我回复的, 但是说是AI创作直接给我折叠了. 我不去研究这个问题都没有人回答. 这是什么道理.?)这个问题最后借助于chatGPT的回答:
在使用iperf3对macbook pro 2020 的wifi进行测试时,发现单连接跑满带宽,使用-P参数增加连接数后就可以,这是为什么 参考: 在使用iPerf3对MacBook Pro 2020的WiFi进行测试时,如果单个连接无法充分利用带宽,可能主要原因是网络延迟或拥塞控制。TCP协议自身有拥塞控制机制来确保网络的稳定性,防止因通信过量导致的网络拥塞。当分别使用多个连接进行iPerf3测试时(通过-P参数指定),这些限制可以相互抵消,从而达到更高的总传输速率。 TCP拥塞控制机制是影响单个连接性能的主要因素之一。在TCP连接初始建立过程中,会使用慢启动机制,这时连接速率会随着已确认数据包的数量呈指数倍增长。当达到预设阈值后,连接速率将会变为线性增长。一旦出现数据包丢失或网络出现拥塞,拥塞窗口将会收缩,从而降低发送速率。这样的限制就导致了单个连接很难完全利用带宽。 然而,当你使用iPerf3的-P参数增加多个并发连接时,这些连接共同使用总带宽。由于每个连接都有自己的拥塞控制,他们可以在一定程度上相互抵消限制,并更充分地利用可用带宽。通过测试多个连接并将它们的速率相加,能够更准确地评估WiFi设备在实际环境中实际网络传输能力。 需要注意的是,在实际应用场景中,根据使用的应用和服务,网络连接数和工作负载可能会有所不同。因此,基于iPerf的多个TCP连接测试并不一定能完全反映日常使用场景下的网络性能表现。在实际使用过程中,网络性能还可能受到其他因素的影响,如信道干扰、信号强度、设备负载等。
以下是另外一角度的回答:
iperf3测wifi网速,单线程跑不满而需要跑6~8个线程才能跑满。而有线网卡一个线程就可以跑满网速。 参考: 在使用iPerf3测试WiFi网速时,通常需要运行多个线程(6-8个),这是因为无线网络与有线网络在传输特性上有所区别。具体来说,WiFi网络由于受到信号质量、信号干扰、距离等多方面因素的影响,更容易受到数据传输中的波动。以下是导致这个现象的原因: 信号干扰:相较于有线连接,WiFi受到的信号干扰更多,如其他无线设备、电子设备等都有可能对WiFi信号带来影响。这种干扰会增加数据包的丢失率,进而影响到单个线程的性能表现。 多径衰落:无线信号在环境中可能会经历多条路径,并在接收时造成干扰。这种现象称为多径衰落,它会导致部分数据包丢失,并降低单线程连接的速率。 延迟:无线网络相较于有线连接通常具有更高的延迟,这影响了单个线程下TCP拥塞控制算法的性能。较高的端到端延迟会降低拥塞窗口的增长速度,从而使得单个线程很难充分利用带宽。 信号强度和距离:Wi-Fi信号强度随距离变化,信号强度的衰减会降低单线程的传输速率。 为了更充分地利用无线网络的带宽,一种方法是使用多个线程同时传输数据,从而更好地分摊这些无线网络特性带来的影响。在实际情况中,很多应用使用多线程以提高性能。
其实这两个答案说明了问题的两面, 直接原因是WIFI的无线信号的链路稳定笥导致的传输效率会低于有线. 另外正是这个无线传输的效率打折, 导致TCP在进行 拥塞控制 时, 会倾向于降低速度来保证可靠性.
以上就是为何单线程跑不满,而多线程可以的原因. 不过对于外网测速可以.而iperf3不可以.这个是什么原因还不从考证,希望有懂的朋友留言交流.