我使用 Microsoft 的 Always-On VPN 建立了一个解决方案。配置的基本内容如下:
2 个运行 Server 2019 并安装最新更新的虚拟机 2 个网络适配器,1 个位于“内部”网络中,1 个位于“外部”网络中 外部网络上的默认路由,在 RAS 控制台中添加的静态路由,以将 RFC1918 地址路由到“内部”网关
在大多数情况下,该解决方案运行良好,但我报告了一系列业务应用程序(SAP R3)的性能
通过排除法,我基本上将问题归结为 RAS 服务器和 SAP 服务器之间的性能不佳。为了确定这一点,我最初测试了在 SAP 中运行相同的操作并使用了秒表,但实际上我已经设法使用 Siege HTTP 测试工具进行了一些更简单的测试,而无需将应用程序安装到不同的地方、登录等
从 VPN 服务器到 SAP 服务器的流量通过站点到站点 VPN(Cisco FlexVPN IKEv2),但似乎运行良好,因为缓慢的流量似乎仅来自一台服务器,而不是整个网络
从 RAS 服务器运行测试命令
围攻SAP_SERVER_IP:8020-b--时间=60S
交易:935 次命中 可用性:100.00 % 耗时:6.55 秒 传输的数据:18.07 MB 响应时间:0.06 秒 交易率:142.81 次/秒 吞吐量:2.76 MB/秒 并发性:9.28 成功交易:950 失败交易:0 最长交易:3.06 最短交易:0.00
而从同一源子网中的另一台服务器的速度则要快很多倍:
交易:36716 次命中 可用性:100.00% 耗时:59.80 秒 传输的数据:76.00 MB 响应时间:0.02 秒 交易率:614.00 笔交易/秒 吞吐量:1.27 MB/秒 并发性:12.23 成功交易:0 失败交易:0 最长交易:3.06 最短交易:0.00
然而,奇怪的是,我对另一台 Web 服务器(与目标 SAP 服务器位于同一子网中)进行了测试,并得到了以下结果:
交易:8172 次命中 可用性:100.00% 耗时:59.23 秒 传输的数据:155.40 MB 响应时间:0.06 秒 交易率:137.98 次/秒 吞吐量:2.62 MB/秒 并发性:8.56 成功交易:8172 /失败交易:0 最长交易:3.27 最短交易:0.00
以及我在之前的结果中测试过的“工作”服务器(针对 SAP 服务器进行测试)
交易:7708 次命中 可用性:100.00% 耗时:59.10 秒 传输的数据:146.58 MB 响应时间:0.10 秒 交易率:130.43 次/秒 吞吐量:2.48 MB/秒 并发性:13.53 成功交易:7708 失败交易:0 最长交易:3.48 最短交易:0.00
基本上性能大致相同(至少在误差范围内)
我打开了 wireshark 尝试查看测试之间的差异,
在对快速服务器进行以下测试时,我注意到“传出”数据包的 MSS 值为 1460,而“传入”数据包的 MSS 值为 1300
5176 2020-05-07 16:50:00.461214 RAS_SERVER_IP FAST_WEB_SERVER_IP TCP 66 64439 → 80 [SYN,ECN,CWR] 序列号=0 Win=65535 长度=0 MSS=1460 WS=1 SACK_PERM=1 5238 2020-05-07 16:50:00.462856 FAST_WEB_SERVER_IP RAS_SERVER_IP TCP 66 80 → 64425 [SYN,ACK] 序列号=0 Ack=1 Win=65535 长度=0 MSS=1300 WS=256 SACK_PERM=1
对于缓慢的 SAP 服务器来说它看起来如下:
245 2020-05-07 16:53:21.554203 RAS_SERVER_IP SAP_SERVER_IP TCP 66 52481 → 8020 [SYN,ECN,CWR] 序列号=0 Win=65535 长度=0 MSS=1460 WS=1 SACK_PERM=1 249 2020-05-07 16:53:21.554617 SAP_SERVER_IP RAS_SERVER_IP TCP 62 8020 → 52479 [SYN,ACK] 序列号=0 Ack=1 Win=65535 长度=0 MSS=1300 WS=2
但我注意到在收到大量重传后:14005 2020-05-07 17:08:13.576985 SAP_SERVER_IP RAS_SERVER_IP TCP 1354 [TCP 重传] 8020 → 64806 [ACK] Seq=1 Ack=150 Win=66300 Len=1300
我在性能良好的服务器上运行了同样的测试,结果基本相同,但我没有看到重新传输
tl;dr = 从 RAS 服务器到特定服务器的流量很慢,从同一网络中的另一个源服务器到该服务器的流量很快,而从慢速源服务器到另一个目标服务器的流量也很快..
有人知道我可以在哪里解决这个问题吗?我真的没有主意了 :(
提前致谢
答案1
我发现 Hyper-V 虚拟机的内部 NIC 启用了“启用 MAC 地址欺骗”选项,而该选项只需要外部 NIC(运行网络负载平衡的地方)。
我将其关闭并解决了性能问题。