IIS 之 应用程序池

摘要:
如果设置为“KillW3WP”,应用程序池将在重置间隔期间关闭,并生成事件日志条目。值为0表示应用程序池不会定期回收。如果该值为0,则应用程序池可以处理的请求数没有限制。

IIS(Internet Information Services),由于我使用的是Windows10系统,所以本文以其内置 10.0.14393.0 版本说明。

应用程序池 → 右键(待设置应用程序池)→ 高级设置,如下图:

IIS 之 应用程序池第1张

  1、常规,如下图:

IIS 之 应用程序池第2张

1.1 .NET CLR 版本

[managedRuntimeVersion] 配置应用程序池,以加载特定版本的 .NET CLR。选定的 CLR版本应与应用程序所使用的相应版本的 .NET Framework 对应。选择“无托管代码”将导致所有的 ASP.NET 请求失败。

[1] v4.0 或 V2.0 ; [2] 无托管代码;

1.2 队列长度

[queueLength] HTTP.sys 将针对应用程序池排队的最大请求数。如果队列已满,新请求将收到 503“服务不可用”的响应。默认队列长度设置是1000,范围在10-65535 之间。

1.3 名称

[name] 应用程序池名称是应用程序池的唯一标识符。

1.4 启动模式

[startMode] 将应用程序池配置为在按需运行模式或始终运行模式下运行。

[1] OnDemand;[2]AlwaysRunning;

1.5 启用 32 位应用程序

[enable32BitAppOnWin64] 如果针对 64 位操作系统上的应用程序池将该属性设为 True,则为应用程序池提供服务的工作进程将处于 WOW64 (Windows on Windows64)模式。WOW64模式下的进程是仅加载 32 位应用程序的 32 位进程。

1.6 托管管道模式

[managedPipelineMode] 将 ASP.NET 配置成作为 ISAPI 扩展并以经典模式来运行。在后一种情况下,托管代码集成到请求处理管道中。

[1] Classic;[2] Integrated;

  2、CPU,如下图:

IIS 之 应用程序池第3张

2.1 处理器关联掩码

[smpProcessorAffinityMask] 强制此应用程序池的工作进程在特定 CPU 上运行的十六进制掩码。如果启用了处理器关联,则值 0 将导致错误。

2.2 处理器关联掩码(64位选项)

[smpProcessorAffinityMask2] 为64位计算机制定强制此应用程序池的工作进程在特定 CPU 上运行的高顺序 DWORD 十六进制掩码。在 64 位计算机上,smpProcessorAffinityMask 特性包含处理器掩码的低顺序 DWORD ,而 smpProcessorAffinityMask2 特性包含处理器掩码的高顺序 DWORD。

2.3 限制(百分比)

[limit] 配置允许应用程序池中的工作进程在"CPU 限制间隔"属性指示的时间段内使用的 CPU 时间的最大百分比。如果超过“CPU 限制”属性设置的限制,系统将向事件日志写入一个事件,并且可能触发一组可选事件(由“CPU 限制操作”属性决定)。如果将此属性的值设为 0 ,将禁止将工作进程限制为 CPU 时间的百分比。

2.4 限制操作

[action] 如果设置为"NoAction",将生成一个事件日志条目。如果设置为“KillW3WP”,则将在重设间隔期间关闭应用程序池并生成一个事件日志条目。如果设置为“Throttle ”,则 CPU 使用率将限制为限制中设置的值。不使用限制间隔,并且生成一个事件日志条目。如果设置为“ThrottleUnderLoad ”,则只有在争用 CPU 时,才限制 CPU 使用率。不使用限制间隔,并且生成一个事件日志条目。

[1] NoAction; [2] KillW3WP; [3] Throttle; [4] ThrottleUnderLoad;

2.5 限制间隔(分钟)

[resetInterval] 指定用于应用程序池的 CPU 监视和限制的重设期限(以分钟为单位)。如果自上次进程计帐重设以来所经过的分钟数等于此属性指定的分钟数,IIS 将重设日志和限制间隔的 CPU 计时器。将此属性的值设为 0 将禁用 CPU 监视。

2.6 已启用处理器关联

[smpAffinitized] 如果设为 True ,“处理器关联掩码”属性会强制为此应用程序池提供服务的工作进程在特定的 CPU 上运行。这样便可以在多处理服务器中有效使用 CPU 缓存。

  3、回收,如下图:

IIS 之 应用程序池第4张

3.1 发生配置更改时禁止回收

[disallowRotationOnConfigChange] 如果为 True,应用程序池在发生配置更改时将不会回收。

3.2 固定时间间隔(分钟)

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

3.3 禁止重叠回收

[disallowOverlappingRotation] 如果为 True ,将发生应用程序池回收,以便在创建另一个工作进程之前退出现有工作进程。如果工作进程加载不支持多个实例的应用程序,请将该属性设为True。

3.4 请求限制

[requests] 应用程序池在回收之前可以处理的最大请求数。如果值为0,则表示应用程序池可以处理的请求数没有限制。

3.5 生成回收事件日志条目

[logEventOnRecycle] 每发生一次指定的回收事件时便生成一个事件日志条目。

3.5.1 ISAPI 报告了非正常状态

[IsapiUnhealthy] 如果为True,则当应用程序池由于 ISAPI 扩展将其自身报告为非正常而进行回收时,系统将生成一个事件日志条目。

3.5.2 超出请求限制

[Requests] 如果为 True,则当应用程序池在超出其请求限制后进行回收时,系统将生成一个事件日志条目。

3.5.3 超出虚拟内存限制

[Memory] 如果为True,则当应用程序池在超出其虚拟内存限制后进行回收时,系统将生成一个事件日志条目。

3.5.4 固定时间间隔

[Time] 如果为True,则当应用程序池按计划的间隔进行回收时,系统将生成一个事件日志条目。

3.5.5 手动回收

[OnDemand] 如果为True,则当手动回收应用程序池时,系统将生成一个事件日志条目。

3.5.6 特定时间

[Schedule] 如果为True,则当应用程序池在计划的时间进行回收时,系统将生成一个事件日志条目。

3.5.7 已超出专用内存限制

[PrivateMemory] 如果为True,则当应用程序池在超出其专用内存限制后进行回收时,系统将生成一个事件日志条目。

3.5.8 应用程序池配置已更改

[ConfigChange] 如果为True,则当应用程序池由于其配置发生更改而回收时,系统将生成一个事件日志条目。

3.6 特定时间

[schedule] 应用程序池进行回收的一组特定的本地时间(24小时制)。

3.7 虚拟内存限制(KB)

[memory] 工作进程可以使用的最大虚拟内存量(以 KB 为单位),超过此内存量,将导致应用程序池回收。如果值为 0 ,则表示没有限制。

3.8 专用内存限制(KB)

[privateMemory] 工作进程可以使用的最大专用内存量(以 KB 为单位),超出此内存量,将导致应用程序池回收。如果值为0,则表示没有限制。

  4、进程孤立,如下图:

IIS 之 应用程序池第5张

4.1 可执行文件

[orphanActionExe] 当工作进程被废弃(孤立)时运行的可执行文件。例如,“C:dbgtools tsd.exe”将调用 NTSD 来调试工作进程故障。

4.2 可执行文件参数

[orphanActionParams] 当工作进程被废弃(孤立)时所运行的可执行文件的参数。例如,如果 NTSD 是为调试工作进程故障而调用的可执行文件,则“-g -p %1%”适用。

4.3 已启用

[orphanWorkerProcess] 如果设为True ,则无响应的工作进程将被废弃(孤立),而不是终止。可以使用此功能来调试工作进程故障。

  5、进程模式,如下图:

IIS 之 应用程序池第6张

5.1 Ping 间隔(秒)

[pingInterval] 两次向为此应用程序池提供服务的工作进程发送健康状况监视 ping 所间隔的时间段(以秒为单位)。

5.2 Ping 最大响应时间(秒)

[pingResponseTime] 为工作进程指定的、响应健康状况监视 ping 的最长时间(以秒为单位)。如果工作进程不响应,将被终止。

5.3 标识

[identityType, username, password] 配置应用程序池以作为内置账户或特定的用户标识运行,内置账户也就是“应用程序池标识”(推荐)、“网络服务”、“本地系统”、“本地服务”。

5.4 关闭时间限制(秒)

[shutdownTimeLimit] 为工作进程指定的、完成处理请求并关闭的时间段(以秒为单位)。如果工作进程超过关闭的时间限制,将被终止。

5.5 加载用户配置文件

[loadUserProfile] 此设置指定 IIS 是否为应用程序池标识加载用户配置文件。当此值为 True 时,IIS为应用程序池标识加载用户配置文件。如果您需要像 IIS 6.0 那样不为应用程序池标识加载用户配置文件,则此值设置为 false。

5.6 空闲超时操作

[idleTimeoutAction] 达到空闲超时持续时间后要执行什么操作。

5.7 启动时间限制(秒)

[startupTimeLimit] 为工作进程指定的、启动并进行初始化的时间段(以秒为单位)。如果工作进程初始化时间超过启动时间限制,将被终止。

5.8 启用 Ping

[pingingEnabled] 如果为 True,系统将定期对为此应用程序池提供服务的工作进程执行ping 操作,以确保这些工作进程仍及时响应。此过程称为健康状况监视。

5.9 生成进程模型时间日志条目

[logEventOnProcessModel] 为每次发生的指定进程模型事件生成一个事件日志条目。

5.9.1 空闲超时已到

[IdleTimeout] 如果为 True,则当应用程序池在超出其空闲时限制后关闭时,系统将生成一个事件日志条目。

5.10 闲置超时(分钟)

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

5.11 最大工作进程数

[maxProcesses] 可用来处理对应程序池的请求的最大工作进程数。如果此数字大于 1,则应用程序池为“Web 园”。在 NUMA 感知系统上,如果此数字为 0,则为获得最佳性能,IIS 将启动与 NUMA 节点一样多的工作进程。

  6、快速故障防护,如下图:

IIS 之 应用程序池第7张

6.1 “服务不可用”响应类型:

[LoadBalancerCapabilities] 如果设为 HttpLevel,那么当应用程序池停止时, HTTP.sys 将返回 HTTP 503 错误。如果设为 TcpLevel,HTTP.sys 将重置连接。如果负载平衡器识别其中一种响应类型,并随后重定向该类型,则此设置非常有用。

6.2 故障间隔(分钟)

[rapidFailProtectionInterval] 应用程序池发生指定数量的工作进程崩溃(最大故障数)的最短时间间隔(以分钟为单位)。如果低于此间隔,应用程序池将被快速故障防护功能关闭。

6.3 关闭可执行文件

[autoShutdownExe] 当应用程序池被快速故障防护功能关闭时所运行的可执行文件。可以使用它来配置负载平衡器,将此应用程序池的通信重定向至其他服务器。

6.4 关闭可执行文件参数

[autoShutdownParams] 当应用程序池被快速故障防护功能关闭时运行的可执行文件的参数。

6.5 已启用

[rapidFailProtection] 如果设为 True,则当在指定的时间段(故障间隔)内出现指定数量的工作进程崩溃(最大故障数)的情况时,应用程序池将被关闭。默认情况下,如果在5分钟的间隔内发生5次崩溃,应用程序池将被关闭。

6.6 最大故障数

[rapidFailProtectionMaxCrashes] 应用程序池被快速故障防护功能关闭之前允许的最大工作进程崩溃数。

免责声明:文章转载自《IIS 之 应用程序池》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇nginx使用多端口监听多个服务Nginx 禁止IP访问 只允许域名访问下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

app常见性能测试点

转载链接:https://blog.csdn.net/xiaomaoxiao336368/article/details/83547318普遍的apk性能测试,主要是以下七类1、响应2、内存3、cpu4、FPS (app使用的流畅度)5、GPU过度渲染6、耗电7、耗流(app除了这些性能测试,还有:手机版本号兼容性,屏幕分辨率兼容性,稳定性测试,安全测试等...

Linux的log日志功能

# cd /etc/init.d # ./syslog restart Shutting down kernel logger: OK ]Shutting down system logger: OK ]Starting system logger: OK ]Starting kernel logger: OK ] 不过最好查询清楚是为什么不能写入linu...

python限制进程、子进程占用内存大小、CPU时间的方法:resource模块

内置模块:resource 在mac环境下功能会存在问题。linux下可以使用:但是for i in range(10000)的值必须是10000或者更大的数值才有用。没有搞清楚为什么 #/usr/bin/env python #-*-coding:utf-8-*- import resource #soft,hard=resource.getrli...

Python基础-多线程与多进程

一,线程与进程之间的关系:(从知乎上看到的) 一个必须知道的事实:执行一段程序代码,实现一个功能的过程介绍 ,当得到CPU的时候,相关的资源必须也已经就位,就是显卡啊,GPS啊什么的必须就位,然后CPU开始执行。这里除了CPU以外所有的就构成了这个程序的执行环境,也就是我们所定义的程序上下文。当这个程序执行完了,或者分配给他的CPU执行时间用完了,那它就...

Systemd简介与使用

按下电源键,随着风扇转动的声音,显示器上开启的图标亮起。之后,只需要静静等待几秒钟,登录界面显示,输入密码,即可愉快的玩耍了。 这是我们大概每天都做的事情。那么中间到底发生了什么? 简单地说,从BIOS或者UEFI开始读取硬盘。接下来,进入bootloader(LILO或者GRUB),bootloader开始载入内核,内核初始化完毕后,紧接着进入用户空间的...

现代操作系统 第一章 引论 笔记

现代操作系统 封面上的趣图 什么是计算机系统? 现代计算机系统由一个或多个处理器、主存、磁盘、打印机、键盘、鼠标、显示器、网络接口以及各种其他输入/输出设备组成。 什么是操作系统? 操作系统是一个软件,它的任务是为用户程序提供一个更好、更简单、更清晰的计算机模型,并管理组成计算机系统的各种设备。 操作系统的两个功能? 1. 扩展机器(自顶向下的观点)...