有时当我访问我的windows azure网站时,初始响应时间非常慢。第一页加载后网站速度很快。一些背景:目前网站并不经常访问。此外,我使用keepalivecontroller来保持网站运行,网站以共享模式运行。我想知道:在Windows Azure中从内存中移除的网站是不是那么活跃?或者只是窗口天蓝色的操作层面上的后台任务有时会干扰?这对我来说并不透明正在发生的事情,那么对于windows azure网站来说,还有一些东西吗?
答案 0 :(得分:17)
现在,在“保留”模式下,Windows Azure网站可以使用新功能,以保持网站的温暖。您现在可以在Azure网站的“配置”选项卡下打开“始终打开”。正如this博文中所述:
在网站上启用新的“始终开启”功能时,“Windows Azure会定期自动ping您的网站以确保这一点 该网站始终处于活跃状态,处于温暖/运行状态,“Guthrie 写道。 “这有助于确保网站始终具有响应能力 (并且应用程序域或工作进程由于没有分页 缺少外部HTTP请求。“
答案 1 :(得分:13)
保持网站温暖的最简单方法是使用Windows Azure移动服务中的“计划程序”功能定期调用它。
您只需在计划程序中编写一个脚本,每隔x分钟ping一次您的网站。
以下是有关如何执行此操作的帖子:http://fabriccontroller.net/blog/posts/job-scheduling-in-windows-azure/
答案 2 :(得分:2)
Windows Azure网站仍处于预览状态,因此目前没有该服务的SLA。
网站在免费或共享模式下会空闲,这很可能就是您所看到的。当站点空闲时,它实际上已从内存中删除,实际上运行该站点的IIS进程主机已关闭。这就是他们如何在同一个VM上获得托管100个站点的密度。
你可以在Channel9网站上找到很多关于这种情况的信息,或者,作为一个无耻的插件,这里有一篇文章讨论how the process is handled。
现在,你提到你使用了一个keepalivecontroller,但你究竟是什么意思呢?我使用pingdom.com来请求我的一个网站的数据,这似乎做得很好。仍然可能没有进入请求并且满足空闲时间然后循环站点。也有可能即使您始终运行站点站点所在的VM需要更新底层操作系统,在这种情况下,Azure会将站点进程移动到另一个VM,这也可能导致启动缓慢在下一个请求。
我开始记录您的应用程序启动,然后浏览您的日志以查看发生的频率。
答案 3 :(得分:1)
如果您只需要预热一次(与保持温暖)并且主要是试图阻止您的客户体验页面冷启动,我相信正确的工具是IIS Application Initialization。您可以在它认为应用准备好采取行动之前,使用要点击的网址列表对其进行配置。
我的网站遭受页面冷启动,并且在Azure网站(即使在S3上)被严重放大,但由于几层缓存(我们对Umbraco动态的低效使用),它在第一次服务之后绝对快速节点查询语言创建了大量的数据库流失 - 我们正在机会性地清理它。
从我读过的内容和我自己的web.config尝试来看,Azure网站仍然无法使用。我在这里问过微软:MS IDEA: Application Initialization to warm up specific pages when app pool starts。请考虑投票。
答案 4 :(得分:1)
对于每个服务/站点,您需要转到“配置”,然后将“始终开启”切换为开启。还要确保单击“保存”;在注意到变化之前,我的网站花了大约2分钟。
为什么这不是默认值,令人难以置信,因为我在HostGator上的设置运行速度比Azure快得多。我想微软正在考虑是否有人访问你的网站,如果加载时间很长,也没关系。