Azure Web角色和 Sql Azure延迟
嗨,只是要知道网络工作者角色和 SQL Azure 之间存在延迟和超时,有时会发生超时事件(这些不是随机的)经常)100次ping中有40%没有0ms超时
如果Web工作者角色和SQL Azure位于同一数据中心,为什么在使用内部网络进行通信时出现超时
请参阅随附的屏幕截图:
在这个web worker角色上运行的应用程序有一个神秘的性能起伏......如果可能是由于各种原因,但我需要知道的是,关于延迟和超时的这些统计数据会影响Web应用程序的性能吗?
谢谢,
答案 0 :(得分:17)
我在另一个帖子上发布了这个帖子,但它已经过时了,已经关闭了。我认为它突出了你的一些问题。
我一直在尝试将我们的商业应用程序迁移到云端。考虑到我们的现场服务器已有8年以上的历史,Azure服务应该会有显着的改进。然而,当我们测试我们的应用程序并对云和现场进行基准测试时,我们注意到云中的延迟几乎是现场(8年以上的服务器)总体延迟的3倍,当使用现代设备进行比较时潜伏20倍。 我们的应用程序是一个asp.net应用程序,数据库大小约为11 GB。
SQL Azure和性能
我喜欢Azure作为一个概念。我喜欢这些选择。我喜欢可扩展性,但我不喜欢这种性能。我希望微软能够更加关注这一点,并做出一些改变,因为在修复之前,没有人应该将业务转移到那里。
<强>测试强>
测试是通过运行一系列查询来完成的,这些查询访问完全相同的数据并通过自定义函数在代码中完成,该函数测量从创建对象到处理它的时间(强制写入数据库)的响应时间)。该对象包装正在测试的代码。
没有为测试启用缓存,但我确实允许代码和DB在之前执行一次并获得最佳结果,以便DB服务器有机会优化查询,因此Web服务器可以正确加载程序集
测试1 - 同一台好机器上的Web和DB
测试2 - 同一台机器上的Web和DB
测试3 - 与DB分开的Web
测试4 - Azure
<强>结论强>
在他们解决此问题之前不要这样做,并花时间让他们知道这也是一个问题。
答案 1 :(得分:8)
首先,您需要知道Windows Azure SQL数据库是一种作为服务提供的多租户,高密度RDBMS。这意味着,可能有数百个客户使用单个服务器。
我还建议您特别了解SLA for the services,Windows Azure SQL Database。没有人声称会有0毫秒的延迟。还有&#34; Transient Conditions&#34;在WIndows Azure SQL数据库中。
好的建议阅读是Windows Azure SQL Database Performance and elasticiy guide。
至于网络应用程序的性能,在阅读了性能和弹性指南后,我不认为偶尔发生的200ms是核心瓶颈。
第一条评论后更新
在共享环境中,您将始终有起伏。您还应该期望查询执行时间能够上下变化。在这种环境中,这是不可避免的,你需要设计和使用它。这里没有魔术棒,在Windows Azure SQL数据库中没有为您(对我们而言)提供专用服务器。如果您认为应用程序需要更可靠的SQL Server服务,则可以尝试使用Windows Azure虚拟机并自行启动SQL Server群集。我猜(这只是猜测)云服务和虚拟机之间的通信(假设一切都在同一个可用性集中)将更加可预测。
第2和第3条评论后更新:
嗯,是的,您可能有许可问题(我是许可方面的专家)。您是否为跌宕起伏的门票打开了?如果是这样,你可以尝试升级它(不知道怎么做,但你有你的机票ID,你还必须有一个指定的工程师和一个关于机票的电子邮件 - 回复所有电子邮件邮件)。此外,当您创建故障单时,必须有一个小问卷来反映您的问题对业务的影响。然后必须为票证分配通常的响应时间。如果支持在那段时间内没有回复给您,您肯定可以升级它。
<强>更新强>
我有趣的观察结果是,在您的所有屏幕截图中,只有第一个数据包被延迟,然后每个连续都有0延迟。在您提供的所有样品中。如果这是您的情况10次中有10次,那么您肯定没有任何延迟问题。我建议您使用&#34; -t&#34;常规ping中的选项发送超过4个数据包并观察。我建议打破大约100个数据包,然后观察结果。我不会考虑4个数据包样本,其中只有第一个包含任何性能审核的延迟。