我们的情况如下:
- 我们有一个两个不同的虚拟机(虚拟机)位于某个远程服务器群中。这些机器的硬件/软件(操作系统)配置完全相同。
- 我们有一个J2EE 应用程序在这两台机器上分别运行 JBoss。
- 这两个应用程序的版本不同,VM1 上为 V1,VM2 上为 V2。
- 我们观察到一些响应时间变长适用于应用程序 V2通过公共 URL 访问时。
- 什么时候我们通过安全的VPN访问应用程序,几乎没有任何区别。
- 带宽测试(上传/下载速度、ping 等)表明,通过安全 VPN 访问时,VM1 响应更好。
- 我们得出的结论是应用程序似乎没有性能问题因为,如果是这样的话,通过 VPN 访问时性能也会下降。所以我们总结这是网络问题。
- 但由于那些两个相同的虚拟机位于同一网络上我们正在寻找不同反应的原因。
我的问题是,鉴于上述情况,这种行为可能的原因是什么?
答案1
您必须首先从操作系统检查网络级别。使用 iperf 测试网络延迟和带宽。它仅使用内存中的位来发送随机流量。这仅用于强调和比较网络。如果 iperf 到两个 VM 和来自两个 VM 的流量相同,则它来自应用程序级别(或其他相关内容,如 SGBD)。iperf 工作时,一个充当服务器,另一个充当客户端。测试可以是 UDP 和 TCP。使用 TCP 来接近您的应用程序(Web 服务器)。
也许托管损坏虚拟机的虚拟机管理程序的网卡存在问题,例如速度和双工或接口错误。
VPN 使比较变得错误,因为当 VPN 增加延迟并降低速度时,差异看起来会变得更小(而事实并非如此,正如您通过普通局域网注意到的那样)。