我们最近将远程站点从10 / 10Mbps光纤升级到20 / 20Mbps光纤链路(光纤到地下室,然后从地下室到办公室的VDSL,大约30米)。 在这个网站和一个中心网站之间有一个普通的大型(多个)文件副本,所以理论上说,增加到20/20的链接应该使传输时间减半。
对于复制文件的传输(例如,使用robocopy将文件复制到任何一个方向,或者Veeam备份和恢复的复制),它们都被限制在10Mbps。
升级之前:

升级之后( robocopy ):

几乎相同(忽略转移时间长短的差异)。
这些传输是通过Cisco ASA5520和Mikrotik RB2011UiAS-RM之间的IPSec隧道完成的。
第一个想法:
robocopy ,看到完全相同的统计数据。 32*0.015 32KB窗口大小最差也是2.1MB /秒。 另外多个并发传输仍然加起来10Mbps,这不支持这个理论 这是一个非常奇怪的情况。 我以前从来没有见过这样的事情。
我还能在哪里看?
在进一步的调查中,我有信心把IPSec隧道作为问题。 我做了一个人为的例子,在两个公共IP地址之间直接做了一些testing,然后用内部IP地址做了完全相同的testing,我能够在未encryption的互联网上复制20Mbps,IPSec上只有10Mbps侧。
以前的版本有关于HTTP的红鲱鱼。 忘了这个,这是一个错误的testing机制。
根据Xeon的build议,当我向ISP询问他们的支持时,我build立了一个mangle规则,将IPSec数据的MSS丢弃到1422 – 基于以下计算 :
1422 + 20 + 4 + 4 + 16 + 0 + 1 + 1 + 12 PAYLOAD IPSEC SPI ESP ESP-AES ESP (Pad) Pad Length Next Header ESP-SHA
为了适应ISP的1480 MTU。 但是,这并没有产生有效的区别。
比较wireshark捕获后,TCP会话两端现在协商1380的MSS(调整了一些东西,并添加一个缓冲区,以防我的math糟透了)提示:它可能会。 无论如何,1380也是ASA的默认MSS,所以无论如何它可能一直在谈判这个问题。
我在Mikrotik里面的工具里面看到一些奇怪的数据,我用它来测量stream量。 这可能是没有用的。 我没有注意到这一点,因为我正在使用一个过滤的查询,我只看到这个时,我删除了filter。
即使CPU是我检查的第三件事,我写了这个:
在进行这些转移testing时,Mikrotik的CPU使用率约为25%-33%
这是由CPU图确认

我已经证实了外部资源(即一堆其他支持论坛和博客 ),大多数Mikrotik路由器不能推动超过11Mbps的IPSecstream量与3DES或AESencryption,除非你有一个模型,有硬件encryption卸载。
所以看起来这只是一个硬件限制。 我应该早些抓住它,但由于某种原因,Mikrotik没有向我表明这是CPU限制。
去购物我去。
我可以证实,罪魁祸首是CPU。 在这里,我testing了一台Mikrotik RB750GL,我用AES-128stream量测量了12 Mb / s(而3DES只测量了6.0 Mb / s)。
你的结果似乎完全符合我logging的内容。