5

我们在 Windows Azure 上部署了一个应用程序作为 Web 角色,我们使用 Pingdom 来测试页面加载时间:http ://tools.pingdom.com/fpt/

Windows Azure 上的应用程序的 URL 是:http: //www.doctorspring.com。应用程序的加载时间通常在 7 秒左右。该数据库是 SQL Azure 数据库,并且角色和数据库位于同一区域中。

pingdom 结果示例:http ://tools.pingdom.com/fpt/#!/CllGggrMz/http://www.doctorspring.com/

pingdom 结果示例(使用 gzip):http ://tools.pingdom.com/fpt/#!/f2TUbR6OX/www.doctorspring.com

怀疑 Azure 可能是问题所在,我们尝试了 Somee 的免费托管:http: //www.doctorspring.somee.com Somee 上的应用程序加载时间约为 3.5 秒。

pingdom 结果示例:http ://tools.pingdom.com/fpt/#!/o3gZOjTwH/http://www.doctorspring.somee.com/

这对我们来说是一个巨大的性能问题。您能否帮助我们了解 Azure 的问题或提出一种方法,我们如何才能克服它?

谢谢,马尼什

4

2 回答 2

1

在这两种情况下,加载主页的速度都慢得让人无法接受——生成一个页面需要 3.5 秒,这比网站没有加载时所需的速度慢 10 倍左右。我希望网站在这种性能下即使在中等负载下也会崩溃。

在不知道网站是如何构建的情况下,很难解释一个环境比另一个环境快的原因——但我的猜测是生成页面的任何东西(某种 CMS?)都是原因。众所周知,Azure 在进行数据库查询时会有点慢——尽管通常这只会在极端条件下表现出来。

我建议调整 CMS - 尤其是缓存。我们发现 Azure 通常非常快,但是在进行数据库查找时(例如,为 CMS 检索内容),它可能是可变的;如果您的 CMS 正在执行大量数据库查询来获取主页内容,那么它会很慢。

运行 Yslow 也是值得的——在提高性能方面有一些唾手可得的成果。

于 2013-03-14T12:42:25.320 回答
1

您在 Azure 中运行哪些服务?网络角色、虚拟机、网站?您是否从主页连接到 Azure 数据库实例(如果是,您进行了多少不同的调用)?我从伦敦获得了大约 7.5 秒的加载时间,但老实说,即使 3 秒对于主页来说也太慢了。很难知道是什么导致页面加载时间延长,但如果您连接到数据库实例,您可以做很多事情,例如

  1. 呈现页面并进行一些异步调用以假脱机附加数据。

  2. 确保您的 Azure 服务运行紧密

  3. 考虑将数据库内容缓存到 blob。例如,对于“过去 24 小时内回答的医疗问题”中的数据,如果您在每次加载时都从数据库中提取此数据,您可以通过定期将其缓存到存储在 blob 容器中的 html 文件并将其注入页面来显着加快访问速度.

  4. 如果您必须从主页进行数据库调用,请尝试通过将查询批处理到存储过程中来尽可能少地进行往返。

我在这里做了很多假设,但是您当然可以做一些事情来大幅提高此页面的性能。

于 2013-03-14T16:46:11.443 回答