首页 > 编程语言 >IIS配置——关于IIS应用程序池回收机制的几项常用设置

IIS配置——关于IIS应用程序池回收机制的几项常用设置

时间:2024-10-22 08:51:45浏览次数:1  
标签:exe 重叠 IIS w3wp 回收 应用程序 进程 几项

原文:http://bbs.kuaibiao.cn/thread-5857-1-1.html

常规设置

对启动模式、发生配置更改时禁止回收、固定时间间隔(分钟)、禁用重叠回收、闲置超时(分钟)这几项做一个说明。

快速设置:
1、打开IIS,在应用程序池上点击右键选择高级设置。
2、常规分组下将启动模式选择为AlwaysRunning
3、回收分组下将发生配置更改时禁止回收选择为True,固定时间间隔(分钟)将默认的1740改为0、禁用重叠回收选择为True
4、进程模型分组下将闲置超时(分钟)从默认的20改为0

关于设置的说明

  1. 启动模式

  启动模式选项有两个值:OnDemand和AlwaysRunning。顾名思义,OnDemand意味着当没有HTTP请求到达网站时,网站处于关闭的状态;而AlwaysRunning是不管是否有请求,网站一直运行。
两个选项的差异在于,一般来说动态Web站点在启动时往往会执行一些初始化动作,这些动作又是比较耗时的,例如ASP.NET的 Application_Start函数,往往执行的时间较长。因此OnDemand选项会导致前几个Web站点的请求执行时间较长,给用户带来不好的体验,AlwaysRunning则没有这个问题。

  1. 发生配置更改时禁止回收

  通常情况下,Web 网站的配置是在w3wp.exe工作进程启动时加载的。如果管理员在网站工作状态下对应用程序池配置作出了修改,那么当前的w3wp.exe工作进程是没有办法自动加载新的配置信息的。为了让Web 网站迅速应用最新的应用程序池配置,必须停止当前正在运行的w3wp.exe进程,然后再创建一个新w3wp.exe进程,以便在新进程创建时加载最新的应用程序池配置。其实这个过程就是一次回收。当这个配置项设置为True时,意味着当前管理员的修改不会引起应用程序池的回收,而是要等到某个应用程序池回收条件满足时再顺便加载应用程序池最新的配置项目,而这样的配置会有效地避免管理员误操作给生产环境带来的影响。

  1. 固定时间间隔(分钟)

  固定时间间隔配置项的含义是自应用程序池上次回收/启动以来,持续运行了固定时间间隔的时长后,进行一次回收。这个选项最有意思的是默认值即1740分钟。1740分钟除以60等于29个小时。为什么不是24小时呢?答案是29是大于24的最小质数。换句话说,这个数字是微软IIS的项目经理拍脑袋想出来的,没什么理由!猜想的原因是:
(1)Web应用程序运行一段时间必须要回收一次,以保证性能。
(2)一个编写和测试良好的Web应用程序无须每天回收一次。
  回归问题本质,设置这个选项有意义吗?初看挺有意义的,把默认值改为1440分钟不就每天都回收了吗?但是可能忽略了一个问题,那就是管理员很难清楚地记得应用程序池上次是哪天几分几秒启动/回收的?如果这个时间起算点没有搞清楚,那就意味着应用程序池的回收是一种随机的状态。就快表的大量用户配置情况来看,90%以上的应用程序池都是默认值1740分钟,也许这就是某些情况下Web网站会出现忽然变慢又莫名其妙地恢复的原因吧。正确的做法应该是将这个配置项设置为0,永久地禁用这个选项。

  1. 禁用重叠回收

  禁用重叠回收是一种典型的程序员的说法,这个选项的默认值是False。综合来看这个选项:禁用重叠回收是False。前面禁用是否定,后面False也是否定,双重否定即肯定,也就是默认情况下重叠回收是启用的。
  下面需介绍什么是重叠回收(Overlapped Recycling)。所谓重叠回收是指当回收发生时,先创建一个新的w3wp.exe工作进程,然后把用户的请求通过IIS 路由到新的进程中处理,待老进程中全部的请求处理完毕再停用老进程。所谓重叠是指w3wp.exe新老工作进程重叠。相应地,非重叠回收的回收流程是:先停止老的w3wp.exe工作进程,再启动一个新的w3wp.exe工作进程。两种回收方式各有优点:重叠回收,回收执行周期相对较长,但是不影响用户使用,不中断业务;非重叠回收,回收执行周期短,但是会中断老进程中用户的操作。一般而言,在生产环境为了保证业务执行不中断,管理员都会选择重叠回收的方式。

  1. 闲置超时(分钟)

  这个选项是指w3wp.exe进程自处理结束最后一个用户HTTP请求结束之后,连续等待指定的超时时间仍然没有接收到新的HTTP 请求时,就会关闭网站的w3wp.exe工作进程。
  为什么默认值是20分钟呢?答案很简单,因为默认的Session超时时间就是20分钟。闲置超时和Session超时时间保持一致,可以保证不会出现用户交互错误。设置闲置超时时间,是为了在Web网站空闲时关闭工作进程,腾出更多的资源给别的网站和应用程序使用。但是下次网站启动时会重新执行网站初始化函数,导致前几个HTTP请求处理缓慢。

标签:exe,重叠,IIS,w3wp,回收,应用程序,进程,几项
From: https://www.cnblogs.com/shanzhiming/p/18471505

相关文章

  • HarmonyOS:应用程序包结构(2)HSP(Harmony Shared Package)动态共享包
    ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★➤微信公众号:山青咏芝(MaoistLearning)➤博客园地址:为敢技术(https://www.cnblogs.com/strengthen/ )➤GitHub地址:https://github.com/strengthen➤原文地址:https://www.cnblogs.com/strengthen/p/......
  • HarmonyOS:应用程序包结构(3)HAR(Harmony Archive)静态共享包
    ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★➤微信公众号:山青咏芝(MaoistLearning)➤博客园地址:为敢技术(https://www.cnblogs.com/strengthen/ )➤GitHub地址:https://github.com/strengthen➤原文地址:https://www.cnblogs.com/strengthen/p/......
  • HarmonyOS:应用程序包结构(1)Stage模型应用程序包结构
    ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★➤微信公众号:山青咏芝(MaoistLearning)➤博客园地址:为敢技术(https://www.cnblogs.com/strengthen/ )➤GitHub地址:https://github.com/strengthen➤原文地址:https://www.cnblogs.com/strengthen/p/......
  • 当coretypes.dll守护者缺席:一键解锁应用程序故障自救秘籍
    在计算机的世界里,每一个小小的文件都承载着巨大的责任。而coretypes.dll,这个看似不起眼的动态链接库文件,却是许多应用程序正常运行的守护神。它负责提供核心类型定义和功能支持,一旦丢失或损坏,你的应用程序可能会立刻陷入困境,出现无法启动、崩溃或功能异常等问题。然而,面对这......
  • 【转】[WPF] 关闭模式决定了应用程序何时关闭
    在WPF(WindowsPresentationFoundation)中,关闭模式(ShutdownMode)决定了应用程序何时关闭。可以通过以下方式设置关闭模式:XAML设置:在 App.xaml 文件中,可以通过 ShutdownMode 属性来设置关闭模式。WPF提供了三种关闭模式:OnLastWindowClose:默认值,当最后一个窗口关闭时,......
  • 掌握API调用,让你的应用程序与世界互联
    为什么使用API接口?API接口允许开发者访问第三方服务提供的数据和功能,而无需从头开始构建这些功能。这不仅节省了开发时间和成本,还能让应用程序更加丰富和动态。何时使用API接口?当你需要以下功能时,可以考虑使用API接口:获取实时数据,如天气、股市信息或新闻头条。集成社交媒体功......
  • Stage模型应用程序包结构
    ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★➤微信公众号:山青咏芝(MaoistLearning)➤博客园地址:为敢技术(https://www.cnblogs.com/strengthen/ )➤GitHub地址:https://github.com/strengthen➤原文地址:https://www.cnblogs.com/strengthen/p/......
  • 第36篇 linux服务器上启动framework应用程序流程
    framework开发的应用程序,一般是不会在linux服务器上运行的,但是我们可以通过mono进行应用部署1.查看linux服务上是否已经安装mono-core方式1:rpm命令查看rpm-qa|grepmono-core有结果返回,说明已经安装方式2:使用yumlistinstalledyumlistinstalled|grepmono-core......
  • 使用vs2022将.net8的应用程序发布为一个单独文件
    在使用.NetCore3.1时,可以通过设置以下工程配置文本来将项目发布为一个单独的应用程序文件:<ProjectSdk="Microsoft.NET.Sdk.WindowsDesktop"><PropertyGroup><TargetFramework>netcoreapp3.1</TargetFramework><UseWPF>true</UseWPF> <Publi......
  • 应用程序框架基础
    ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★➤微信公众号:山青咏芝(MaoistLearning)➤博客园地址:为敢技术(https://www.cnblogs.com/strengthen/ )➤GitHub地址:https://github.com/strengthen➤原文地址:https://www.cnblogs.com/strengthen/p/......