Hello! 欢迎来到小浪云!


香港服务器IIS网站应用程序初始化和预加载


avatar
小浪云 2024-10-07 40


香港服务器进行初始化和预加载的原因

一、IIS 网站在第一次请求时,需要进行了初始化操作,而这个初始化操作耗费了时间。当第二次请求时,不再需要初始化操作,因此变快了。当网站在一段时间内,没有接收到请求时,IIS 回收了资源,当再次接收请求时,又重新进行初始化操作。IIS 的初始化和资源回收,是为了网站稳定运行,内存资源得到充分利用管理。IIS 默认情况下 29 小时回收一次资源。下面我们通过设置改变 IIS 默认行为,使网站既能保持稳定运行,又能提高网站响应速度,最终提高用户体验。

二、安装 IIS 应用程序初始化功能

1、打开“服务器管理器”,左侧选择“IIS”,右侧列表中,鼠标右键选择“添加角色和功能”。

2、弹出“添加角色和功能向导”,在向导中“服务器角色”里选择“应用程序初始化”,右侧显示描述为,应用程序初始化先执行耗费资源的 Web 应用程序初始化任务,然后再为网页提供服务。

三.设置网站应用程序池1、打开 IIS 管理器,左侧展开“应用程序池”节点,右侧选择某个网站的应用程序池,鼠标右键“高级设置”。

2、在应用程序池高级设置中,设置 4 项。

常规 > 启动模式,设置为“AlwaysRunning”。将应用程序池配置为始终运行模式下运行。

回收 > 固定时间间隔(分钟),设置为“0”。一个时间段(以分钟为单位),超过该时间后,应用程序池将回收。值为 0 意味着应用程序池不会按固定间隔回收。

回收 > 特定时间,添加一组时间为凌晨 4 点。应用程序池进行回收的一组特定的本地时间(24 小时制)。

进程模型 > 闲置超时(分钟),设置为“0”。工作进程在关闭之前可以保持闲置状态的时间(以分钟为单位)。如果某个工作进程既未处理请求,也未收到任何新的请求,则将进入闲置状态。

设置解释:将某网站的应用程序池设置为始终运行,工作进程不进入闲置状态,不按照固定时间间隔回收程序池,采用特定时间回收程序池,并设置回收时间为每天凌晨 4 点回收。设置凌晨 4 点回收,也就是考虑此时网站访问人数相对较少,服务器资源相对较多,最大降低对用户的影响。另外,需要注意的是,回收将导致网站内存信息消失,例如 session 存放在内存,会导致 session 消失。不只是回收会导致 session 丢失,其它也会导致,例如更新网站配置,手动重启回收等,都会导致 session 丢失。可考虑其他方式保存 session,例如数据库或 Cookie 等。

四、启用网站预加载设置通过预加载工作进程减少第一个请求的响应时间。IIS 应用程序初始化允许网站在第一个请求到达之前,在工作进程启动后立即配置要预加载的 Web 应用程序。通过预加载应用程序,工作进程能够减少响应第一个请求所需的时间。在请求到达服务器时,已经执行了依赖项的加载和初始化,例如数据库连接,.NET Framework 以及 ASP.NET 应用程序和依赖项的即时编译。

1、打开 IIS 管理器,左侧展开“网站”节点,在网站上鼠标右键选择“管理网站 > 高级设置”。

2、在“高级设置”设置“预加载已启用”为“true”。

五、设置初始化请求地址

IIS 应用程序初始化可以提高用户体验。通过指定要执行的一组 URL 来初始化应用程序,并且可以将 IIS 配置为在应用程序完成初始化之前返回备用响应(如静态内容)。在 Web.config 配置文件中也可以设置以上属性:

1.

2. 3. doAppInitAfterRestart=”true”

4. skipManagedModules=”true”

5. remapManagedRequestsTo=”filename.htm”

相关阅读