iis配置php应用程序池,IIS应用程序池配置详解及优化

原标题:IIS应用程序池配置详解及优化

转自:故人与猫

cnblogs.com/Drock/p/14149485.html

参数说明

1、常规

e58043c769378039d5f7c63b9726d92e.png

2c2b5877d2ecb12fd042e7ad686bb661.png

Classic模式:指的是与IIS 6或者之前版本保持兼容的一种模式,一个典型问题就是,在处理ASP.NET这种动态网站的时候,它是通过一个所谓的ISAPI程序,作为插件的方式来工作的。针对不同的动态应用程序(例如ASP,PHP等),会需要不同的ISAPI。

Integrated模式:这种全新的模式,允许我们将ASP.NET更好地与IIS集成,甚至允许我们在ASP.NET中编写一些功能(例如Module)来改变IIS的行为(扩展)。集成的好处是,不再通过ISAPI的方式,提高了速度和稳定性。至于扩展,则可以使得我们对于IIS,以及其他类型的请求有更多的控制。

2、CUP

b5114d9b33155de97e92ec60dcd09ae9.png

f7db484b6f3c66a7caaf973617509053.png

3、回收

2239013598296e5479020eb5c5eb1a2e.png

bcf64450e08e76ae3ef325f43b4f5d52.png

9a7047b812062b9642f3027f122ca209.png

4、进程孤立

f971097d03120a43fcf081bd3c7b210e.png

7489977d16c8339a4229c27104b3ad91.png

5、进程模型

307c312f5de2803290eea15cd7a9db2f.png

adc71195bc2bf1297efa9ee2f5754821.png

2e7ba9ef1ebb6db31fcbe43b2360f340.png

标识详解:

本地系统:具有高权限的受信任帐户,还具有对网络资源的访问权限。

网络服务:用于运行标准的最小特权服务的受限或有限服务帐户。此帐户具有比本地系统帐户更少的权限。此帐户可以访问网络资源。

本地服务:受限制或有限的服务帐户,与网络服务类似,旨在运行标准的最小特权服务。此帐户无权访问网络资源。

ApplicationPoolIdentity:当创建新的应用程序池时,IIS 将创建一个虚拟帐户,该帐户具有新应用程序池的名称,并在此帐户下运行应用程序池工作进程。这也是一个具有最小特权的帐户。

自定义帐户:除了这些内置帐户之外,还可以通过指定用户名和密码来使用自定义帐户。

6、快速故障防护

136a4be4bf5c0184eb9869bc435b7334.png

b1615390b8dbd642ef998c3394d8e653.png

应用程序池优化配置

1、常规设置

队列长度:默认值1000,将原来的队列长度改为 65535。

启动32位应用程序:默认值False,改为True。

托管管道模式:Integrated 或 Classsic。

5233b12dc447cb546a77cbfec05b3a94.png

2、回收设置

禁用重叠回收。

设置为特定时间=true,每天晚上04:00分回收。

81ce836c8ab8958fbc1b992591e04ac5.png

3、进程设置

标识设置,根据实际情况选择,可参照上面的用户定义。

设置闲置超时,进程启动后,规定时间(根据实际情况设置)内未分配任务则回收此资源。

设置工作进程数。

4419ebaab0599ae3c58a694ae00da68d.png

HTTP.sys优化配置

HTTP.sys 负责连接管理和请求处理。可以从 HTTP.sys 缓存提供请求,或将请求传递到工作进程进行进一步处理。可以配置多个工作进程,从而以降低的成本提供隔离。有关请求处理的工作原理的详细信息,请参阅下图:

fb5669127ae81f3cff328a98929791ee.png

HTTP.sys 包括响应缓存。当请求与响应缓存中的条目相匹配时,HTTP.sys 会直接从内核模式发送缓存响应。某些 web 应用程序平台(如 ASP.NET)提供了一些机制,可以在内核模式缓存中缓存任何动态内容。IIS 10.0 中的静态文件处理程序在 http.sys 中自动缓存经常请求的文件。

1、内核模式设置

与性能相关的 HTTP.sys 设置分为两大类:缓存管理和连接和请求管理。所有注册表设置都存储在以下注册表项下:

HKEY_LOCAL_MACHINESystemCurrentControlSetServicesHttpParameters

2、缓存管理设置

HTTP.sys 提供的一个优点是内核模式缓存。如果响应在内核模式缓存中,则可以完全从内核模式满足 HTTP 请求,这会大幅降低处理请求所需的 CPU 开销。但是,IIS 10.0 的内核模式缓存基于物理内存,项的开销是其占用的内存。

缓存中的条目只有在使用时才有用。但是,无论是否正在使用该条目,该条目始终使用物理内存。你必须评估缓存中某项的有用性 (通过考虑可用资源 (CPU 和物理内存) 以及工作负荷要求,从缓存中为其提供服务所需的节省时间) 及其成本) (其成本。

HTTP.sys 尝试在缓存中仅保留有用的、主动访问的项,但你可以通过优化特定工作负荷的 HTTP.sys 缓存来提高 web 服务器的性能。

下面是 HTTP.sys 内核模式缓存的一些有用设置:

UriEnableCache 默认值:1

如果值为非零值,则启用内核模式响应和片段缓存。对于大多数工作负荷,缓存应保持启用状态。如果需要很低的响应和碎片缓存,请考虑禁用缓存。

UriMaxCacheMegabyteCount 默认值:0

一个非零值,该值指定可用于内核模式缓存的最大内存。默认值为0,使系统能够自动调整可用于缓存的内存量。

内核模式缓存中条目的最大大小。不会缓存大于此的响应或碎片。如果有足够的内存,请考虑增加限制。如果内存有限,且大项 crowding 较小的项,则可能会降低限制。

UriScavengerPeriod 默认值:120秒

清理程序会定期扫描 HTTP.sys 缓存,并删除清除程序扫描之间未访问的条目。将清除周期设置为较高的值将减少清除清理的次数。但是,缓存内存使用量可能会增加,因为在缓存中可以保留较旧、不经常访问的条目。将该时间段设置得过低会导致清除清理次数过多,并可能导致刷新和缓存改动过多。

3、用户模式设置

本部分中的设置将影响 IISÂ10.0 工作进程的行为。其中的大多数设置都可以在下面的 XML 配置文件中找到:

% SystemRoot% system32 inetsrv config applicationHost.config

使用 Appcmd.exe、IIS 10.0 管理控制台、WebAdministration 或 IISAdministration PowerShell Cmdlet 来更改它们。大多数设置是自动检测的,它们不需要重启 IIS 10.0 工作进程或 web 应用程序服务器。有关 applicationHost.config 文件的详细信息,请参阅 ApplicationHost.config简介 。

4、NUMA 硬件的理想 CPU 设置

从 Windows 2016 开始,IIS 10.0 支持其线程池线程的自动理想 CPU 分配,以提高 NUMA 硬件的性能和可伸缩性。此功能在默认情况下处于启用状态,可通过以下注册表项进行配置:

HKEY_LOCAL_MACHINESystemCurrentControlSetServicesInetInfoParametersThreadPoolUseIdealCpu

启用此功能后,IIS 线程管理器将尽最大努力基于当前负载在所有 NUMA 节点的所有 Cpu 之间平均分配 IIS 线程池线程。通常情况下,建议将 NUMA 硬件的默认设置保持不变。

5、用户模式缓存行为设置

本部分介绍影响 IISÂ10.0 中的缓存行为的设置。用户模式缓存是作为一个模块来实现的,该模块侦听集成管道引发的全局缓存事件。若要完全禁用用户模式缓存,请从 applicationHost.config 的 System.webserver/globalModules 配置节中的已安装模块列表中删除 FileCacheModule ( # A0) 模块。

system.webserver/缓存

e2527ff8d58c689fcbc273e7cc77cc9e.png

6、压缩行为设置

默认情况下,从7.0 开始的 IIS 压缩静态内容。

此外,在安装 DynamicCompressionModule 时,会默认启用动态内容压缩。

压缩可减少带宽使用量,但会增大 CPU 使用率。如果可能,压缩内容缓存在内核模式缓存中。从8.5 开始,IIS 允许为静态和动态内容单独控制压缩。

静态内容通常是指不会更改的内容,如 GIF 或 .HTM 文件。动态内容通常由脚本或服务器上的代码生成,即 ASP.NET 页面。

您可以自定义任何特定扩展的分类为静态或动态。

若要完全禁用压缩,请从 applicationHost.config 的 System.webserver/globalModules 节中的模块列表中删除 StaticCompressionModule 和 DynamicCompressionModule。

7、并发设置

ASP.NET 3.5

默认情况下,ASP.NET 限制请求并发以降低服务器上稳定状态的内存消耗。高并发性应用程序可能需要调整一些设置以提高整体性能。可以在 aspnet.config 文件中更改此设置:

< system.web>

< applicationPoolmaxConcurrentRequestsPerCPU= "5000"/>

system.web>

以下设置对于完全使用系统资源非常有用:

maxConcurrentRequestPerCpu 默认值:5000

此设置限制系统上同时执行的 ASP.NET 请求的最大数量。默认值为保守以减少 ASP.NET 应用程序的内存占用。考虑在运行执行长时间同步 i/o 操作的应用程序的系统上增加此限制。否则,用户可能会遇到高延迟,因为在使用默认设置时,由于队列限制超出了队列限制,导致队列或请求失败。

ASP.NET 4.6

除了 maxConcurrentRequestPerCpu 设置外,ASP.NET 4.7 还提供了一些设置,以提高严重依赖于异步操作的应用程序的性能。可以在 aspnet.config 文件中更改设置。

< system.web>

< applicationPoolpercentCpuLimit= "90"percentCpuLimitMinActiveRequestPerCpu= "100"/>

system.web>

percentCpuLimit 默认值:90将大量负载 (超出硬件) 功能时,此类情况下会出现一些可伸缩性问题。此问题是由对异步方案进行分配的性质导致的。在这些情况下,将在异步操作启动时进行分配,并且在完成时将使用它。在这段时间,itâs 非常可能将对象移动到第1代或第2代垃圾回收器。发生这种情况时,增加负载会显示每秒请求数增加 (rps) ,直到达到某个点。传递该点后,GC 中花费的时间会开始成为一个问题,rps 将开始进行 dip,这会造成负面影响。若要解决此问题,当 cpu 使用率超出 percentCpuLimit 设置时,请求将发送到 ASP.NET 本机队列。

percentCpuLimitMinActiveRequestPerCpu 默认值:100 CPU 限制 (percentCpuLimit 设置) 不是基于请求数,而是取决于请求的费用。因此,可能只需要几个占用 CPU 的请求,这会导致在本机队列中进行备份,使其不会从传入请求中清空。若要解决此 problme,可以使用 percentCpuLimitMinActiveRequestPerCpu 来确保在限制开始之前提供最少数量的请求。

影响 IIS 性能的其他问题

以下问题可能会影响 IIS 性能:

2、通用网关接口 (CGI) 请求

出于性能方面的考虑,不建议在 IIS 中使用 CGI 应用程序来处理请求。经常创建和删除 CGI 进程涉及到很大的开销。更好的替代方法包括使用 FastCGI、ISAPI 应用程序脚本、ASP 或 ASP.NET 脚本。每个选项都提供隔离。

注意:

1、所有设置更改完毕,需要重启IIS。

2、更多详细设置,请参考微软官方文档。返回搜狐,查看更多

责任编辑:

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
提供的源码资源涵盖了Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 适合毕业设计、课程设计作业。这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。 所有源码均经过严格测试,可以直接运行,可以放心下载使用。有任何使用问题欢迎随时与博主沟通,第一时间进行解答!
IIS应用程序回收是指IIS(Internet Information Services)在一定条件下自动终止和重新启动应用程序的过程。 应用程序IIS中一个独立的进程,在运行网站时负责处理HTTP请求,并将静态或动态内容返回给客户端。由于长时间运行或资源占用过多,应用程序可能出现问题,导致网站响应缓慢甚至崩溃。 为了确保网站的性能和稳定性,IIS提供了应用程序回收功能。当满足以下条件之一时,IIS会自动回收应用程序: 1. 配置更改:修改了应用程序的相关设置,例如CPU占用限制、内存限制等。 2. 定时回收:设定了应用程序的闲置时间或过期时间,超过指定时间没有请求访问应用程序时,IIS会自动回收它。 3. 内存限制:当应用程序使用的物理内存超过了设定的限制时,IIS会回收应用程序。 4. CPU限制:当应用程序的CPU使用率超过限制值时,IIS会回收应用程序。 5. 请求失败:当应用程序连续多次失败或崩溃时,IIS会回收它。 在回收过程中,IIS会终止应用程序中的运行中的进程,并且清除内存中的所有对象。然后,IIS会重新启动应用程序,以确保网站继续正常运行。 应用程序回收是IIS中一个关键的功能,它可以提高网站的性能和稳定性。但是,频繁的回收可能会导致一定的延迟,因此需要根据实际情况进行合理的配置和调整。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值