3

我在 Windows Azure 上托管了一个小型 Orchard 网站。该网站当前配置为使用免费网站实例。我注意到,在 20-30 分钟后第一次访问该站点时,加载需要一段时间(> 5 秒)。在初始加载之后,我可以重新访问该站点,而且速度很快。我怀疑应用程序池作为一个免费的 Azure 网站实例经常被回收。

我需要这个网站尽可能快地加载。我不反对使用不同的 Azure 选项。我只是不确定我应该使用什么。

1) 我的 Orchard 站点的 web.config 文件中有没有办法设置应用程序池的回收频率?我真的需要这个网站快速。

2) 如果我使用“共享”网站实例,这会让我摆脱回收问题吗?

3) 或者,我是否需要“保留”网站实例。

我的主要目标是经济高效地实现在一段时间未访问后快速加载我的网站的目标。我只是不确定我能/应该做什么。

谢谢!

4

2 回答 2

0

我使用以下组合来解决性能问题:

  1. 我启用Keep Alive 模块
  2. 我启用了预热模块并在Performance设置中添加了我最常访问的页面
  3. 我在内部手动设置了机器密钥,web.config以便会话持续进行而不管回收 - 如果没有为 IIS 内的网站分配足够的内存,这可能是一个问题

这些步骤与 Azure 无关,而是与任何类型的托管相关。尤其是在使用 Azure 共享网站实例时,因为它们只不过是共享主机(与 Azure 云服务不同)。

于 2012-12-26T17:41:18.927 回答
0

Azure Web 角色可以很容易地变得快速并避免 appPool 回收问题,因此请在尝试使用 Azure 网站的所有选项后考虑您的计划 B。

我没有尝试过使用 Azure 网站,所以那里可能会也可能不会。关于您是否可以为预留实例配置空闲超时设置的信息含糊不清。您可以尝试的一件事是使用预热功能(仪表板 -> 性能)。这应该会定期加载一些页面,这将防止 appPool 的空闲超时。您也可以尝试使用 pingdom.com 之类的外部服务或类似的服务,这些服务会定期 ping 您的网站以防止其被回收。

如果你最终切换到网络角色,你肯定能够做到这一点。最新的 Orchard 版本 (v1.6+) 默认将 appPool 空闲超时设置为 0(从不超时)。如果您使用 Web 角色而不是 azure 网站,您通常会更好地控制性能和其他配置。这种选择的主要缺点是您失去了一些部署选项,并且部署需要更长的时间(它们仍然很容易,只是需要一段时间)。

于 2012-12-26T17:43:42.047 回答