IIS7.5 也有Warm Up功能,让ASP.NET 第一次Request不变慢

来源:互联网 发布:高维数据稀疏表示 编辑:程序博客网 时间:2024/05/24 06:32

找了半天就这个有点用,记录一下。

网页开发者早期最常遇到一个问题,当网站布署到IIS时候,每当IIS或是Application Pool重启后,第一位进入网站的使用者

,其体验往往第一个反应就是网站很慢,然后就一直询问IT为什么网站这么慢。但是,IT再去确认之后,网页速度又没有问

题,其主要原因请参考[ASP.NET][动画说明]ASP.NET网页第一个Request会比较慢的原因说明,虽然这问题看似不是​​很大问

题,不过,有时企业内部网站,会因为在Web Site 初始化时候进行一堆设定跟Loading Data,这样等待时间就不会是几秒而

已了。因此,早期在IIS7.0以前为了避免这不友善的使用者体验,通常都会自行撰写Warm Up功能,这种功能大都是模拟使用

者第一次登入动作,让真正第一次使用者对于IIS来说是第二次的Request来解决这问题。

自从Windows 2012出来之后,这部分Application Initialization功能已经有内含在IIS8之中,可以直接进行设定就可以。

不过,在大部分的企业用户中并不可能这么快都使用Windows 2012,大都还停留在IIS6或是IIS7.X的时代,不过,目前微

软针对Windows R2的IIS7.5,Release Warm Up的模组叫做Application Initialization Module for IIS 7.5,让在IIS 7.5也可

以有此功能,让我们透过外挂模组就可以轻松拥有Warm Up机制。

官方下载网址:http://www.iis.net/downloads/microsoft/application-initialization

下载完毕,点击两下就可以开始安装。

基本上安装速度很快,一下就可以安装完毕,安装完毕后会要求重新开机,因此,在安装时须注意此主机这个时段可以重新

开机不然就会很糗了

原则上安装模组完毕后,因该在IIS中会出现Warm Up图示控制项,让我们去设定。但是,我在这边安装了几台都没有出

现这控制项可以进行网站设定。甚至连安装在Win7上也没有出现控制项。不过,若是去IIS模组列表中,却又可以看到已

经确实有安装了Application Initialization模组,可供使用。

为了解决此问题,又必须再去安装Application Initialization for UI,才有办法让IIS出现UI可以进行设定,安装档请参阅附档

下载。安装完毕后,在IIS控制置模组中会出现一个Application Initialization图示,此时我们就可以开始设定了

Warm Up设定方式满简单的,主要针对Application Pool层级或是Web Site层级两者进行设定

1.Application Pool层级:只要有需要的Application Pool的Start Mode设定AlwaysRunning就可以

IIS7.5 也有Warm Up功能,让ASP.NET 第一次Request不变慢 image

2.Web Site层级:选择你们要做Preload的Web Site。

IIS7.5 也有Warm Up功能,让ASP.NET 第一次Request不变慢 image

选择好Web Site之后,记得下图红框地方要打勾,若是当网站初始化时间要很久话,可以再Splash Page定义初始化网页说明

说明网站正在初始化,让使用者感觉比较友善

IIS7.5 也有Warm Up功能,让ASP.NET 第一次Request不变慢 image

以上都设定好之后,来进行试验一下。分别测试有无Warm Up的Web Site对于第一个Request的反应,当所有Web Site都

重新启动,模拟第一位User进入此网站

无设定Warm Up的Web Site

IIS7.5 也有Warm Up功能,让ASP.NET 第一次Request不变慢 image

有设定Warm Up的Web Site

IIS7.5 也有Warm Up功能,让ASP.NET 第一次Request不变慢 image

从上图的比较发现,有无Warm Up对于网站的反应是有差别的。

0 0