我们在 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 的问题或提出一种方法来克服它?
谢谢, 曼尼什
最佳答案
在这两种情况下,加载主页的速度都慢得令人无法接受 - 生成页面需要 3.5 秒,这比网站上没有加载时所需的速度慢了大约 10 倍。我预计该网站即使在中等负载下也会崩溃,具有这种性能。
在不知道网站是如何构建的情况下,很难解释一个环境比另一个环境更快的原因 - 但我的猜测是,无论生成页面的是什么(某种 CMS?)都是原因。众所周知,Azure 在执行数据库查询时速度会有点慢 - 尽管通常这只在极端条件下才会表现出来。
我建议调整 CMS - 尤其是缓存。我们发现 Azure 通常相当快,但在进行数据库查找时(例如检索 CMS 的内容),它可能是可变的;如果您的 CMS 执行大量数据库查询来获取主页内容,那么速度将会很慢。
运行 Yslow 也是值得的 - 在提高性能方面有一些唾手可得的成果。
关于Windows Azure 上的 ASP.NET 应用程序性能问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15409444/