我们有一个遗留的web应用程序,运行在我们的数据中心位于休斯顿的房地。为了向客户提供新的功能,我们开发了一个新的基于.net 4的web应用程序。新的web应用程序托管在amazon ec2环境(N.Virginia地区,美国-东-1b区)。
为了与遗留应用程序无缝集成,新的web应用程序调用web服务来检索数据。对于这些web服务调用,我们看到一个异常高的延迟时间,其顺序是5+秒。在本地PC上,相同的web服务调用在不到一秒钟的时间内就会返回(考虑到实际服务器的物理位置,这是有意义的)。奇怪的是,加州的开发人员也有相同的毫秒响应时间。我们正在使用第三方工具(如SoapUI、Google扩展,如Advanced客户端、Postman客户端等)测试web服务响应。
似乎这还不够奇怪,在测试同一区域和可用性区域时,我们注意到了来自某些其他ec2实例的相同的低延迟。如果我们从所有的ec2实例中持续地经历高延迟,我可以理解。但还有别的事情要发生。
比较低延迟和高延迟ec2服务器的各种统计数据和结果,没有显着性差异: ping (常数40 do )、tracert、winmtr等。
我们在VPC中也有一些实例。所以我尝试了web服务主机服务器的公共和私有IP地址,这对上面的结果也没有什么影响。
我们需要解决这个延迟问题,因为这会导致生成的网页加载非常慢(几乎是15+秒,这是完全不能接受的)。
ec2实例具有64位。如果有其他的信息,请告诉我,因为我可以提供帮助诊断。
发布于 2012-11-11 20:29:16
首先,这听起来像是您必须解决与Amazon有关的问题。一个简单的跟踪到您的目标主机将显示您的延迟在哪里。
其次,您应该设计您的应用程序来加载页面,然后在数据可用时显示数据,而不是简单地期望它出现。在我看来,您似乎没有在应用程序中使用任何AJAX故障转移。如何确保您的新应用程序将始终连接到您的遗留应用程序。
TL;DR:运行一个跟踪,打电话给亚马逊,检查你的代码,确保它允许延迟和没有互联网连接的场景。
发布于 2012-11-11 22:15:01
5+第二次延迟看起来是一个罕见但并非不寻常的事件。尝试使用像iperf这样的方法来检查休斯顿的数据中心和弗吉尼亚的ec2实例之间的带宽。如果有帮助的话,下面是我们最近在两个亚马逊地区(东部和西部)之间以及这些地区与我们在加利福尼亚的数据中心主机之间所做的一些带宽测量:
ec2-east -- ec2-west: 25.75 +-7.96
ec2-east -- localhost: 665.0 +-104.5
ec2-west -- localhost: 79.35 +-4.38所有的数字都是以Mbit/秒为单位,测量超过20次,平均。+-是stdev。
希望这能有所帮助。
https://serverfault.com/questions/447615
复制相似问题