12
2023
10
17:22:24

优化 IIS 性能



推荐点击下面图片,通过本站淘宝优惠价购买:

image.png

https://learn.microsoft.com/zh-cn/biztalk/technical-guides/optimizing-iis-performance

优化 IIS 性能

应用 IIS 配置选项以提高 IIS 性能

Internet Information Services (IIS) 公开了许多影响 IIS 性能的配置参数。 本主题介绍其中几个参数,并提供设置参数值以提高 IIS 性能的一般指导。

仅记录基本信息或完全禁用 IIS 日志记录

应在生产环境中最小化甚至禁用 IIS 日志记录。 若要禁用日志记录,请执行以下步骤:

  1. 单击 “开始”,指向“ 所有程序”,单击“ 管理工具”,然后单击“ Internet Information Services (IIS) 管理器”。

  2. 在“ 连接 ”窗格中,单击以展开 “站点”,单击以选择要为其禁用日志记录的网站,单击以选择“ 功能视图”,然后双击 “日志记录 ”功能。

  3. 单击“操作”窗格中的“禁用”,禁用此网站的日志记录。

在生产环境中禁用 IIS ASP 调试

应在生产环境中禁用 IIS ASP 调试。 若要禁用 IIS ASP 调试,请执行以下步骤:在“ 连接 ”窗格中,单击以展开 “站点”,单击以选择要为其禁用 ASP 调试的网站,单击以选择“ 功能视图”,然后双击 ASP 功能。 单击以展开 “编译”,单击以展开 “调试属性”,并验证 “启用客户端调试” 和 “启用服务器端调试” 是否设置为 “False”。

  1. 单击 “开始”,指向“ 所有程序”,单击“ 管理工具”,然后单击“ Internet Information Services (IIS) 管理器”。

  2. 在“ 连接 ”窗格中,单击以展开 “站点”,单击以选择要为其禁用 ASP 调试的网站,单击以选择“ 功能视图”,然后双击 ASP 功能。

  3. 单击以展开 “编译”,单击以展开 “调试属性”,并验证 “启用客户端调试” 和 “启用服务器端调试” 是否设置为 “False”。

  4. 如有必要,单击“操作”窗格中的“应用”。

    通过在 web 应用程序的 web.config 文件中指定 <编译 debug=“false”> 部分,禁用 ASP.NET 应用程序和 Web 服务的调试。

优化“每个处理器的 ASP 线程数限制”属性的值

“ 每个处理器的 ASP 线程数限制 ”属性指定 IIS 创建的每个处理器的最大工作线程数。 增加“每处理器线程数限制”的值,直到处理器利用率达到至少 50% 或更高。 此设置可能会极大地影响 Web 应用程序的可伸缩性和服务器的一般性能。 由于此属性定义可以同时执行的最大 ASP 请求数,因此此设置应保留默认值,除非 ASP 应用程序对外部组件进行扩展调用。 在这种情况下,可以增加“每处理器线程数限制”的值。 这样,服务器就可以创建更多线程来处理更多并发请求。 每个处理器线程限制的默认值为 25。 此属性的最大建议值为 100。

若要增加“每处理器线程数限制”的值,请执行以下步骤:在“ 连接 ”窗格中,选择 Web 服务器,单击以选择“ 功能视图”,然后双击 ASP 功能。

  1. 单击 “开始”,指向“ 所有程序”,单击“ 管理工具”,然后单击“ Internet Information Services (IIS) 管理器”。

  2. 在“ 连接 ”窗格中,选择 Web 服务器,单击以选择“ 功能视图”,然后双击 ASP 功能。

  3. 单击以展开“行为”下的“限制属性”,单击“每个处理器的线程数限制”,输入“每个处理器线程数限制”的所需值,然后单击“操作”窗格中的“应用”。

    有关如何修改 IIS 7.5/7.0 <asp> 元素的 <limits> 元素中的属性的详细信息,请参阅 ASP Limits <> (https://go.microsoft.com/fwlink/?LinkId=157483) 。

 备注

由于此属性只能在服务器级别应用,因此修改此属性会影响在服务器上运行的所有网站。

优化 ASP 队列长度属性的值

优化此属性的目的是确保良好的响应时间,同时最大限度地减少 ASP 请求队列已满时服务器向客户端发送 HTTP 503 (服务器太忙) 错误的频率。 如果 ASP 队列长度属性的值太低,服务器将以更高的频率发送 HTTP 503 错误。 如果 ASP Queue Length 属性的值太高,用户可能会感觉到服务器没有响应,而实际上他们的请求正在队列中等待。 通过在高流量期间监视队列,应识别 Web 请求高峰和谷的模式。 记下峰值,并将 ASP 队列长度属性的值设置为恰好高于峰值的值。 使用队列处理短期峰值,确保响应时间,并限制系统,以避免在持续出现意外峰值时过载。 如果没有用于调整 ASP 队列长度属性的数据,一个很好的起点是设置队列与总线程的一比一比率。 例如,如果“每个处理器的 ASP 线程数限制”属性设置为 25,并且有 4 个处理器 (4 * 25 = 100 个线程) ,请将 ASP 队列长度属性设置为 100 并从那里进行优化。

若要增加队列长度属性的值,请执行以下步骤:

  1. 单击 “开始”,指向“ 所有程序”,单击“ 管理工具”,然后单击“ Internet Information Services (IIS) 管理器”。

  2. 在“ 连接 ”窗格中,选择 Web 服务器,单击以选择“ 功能视图”,然后双击 ASP 功能。

  3. 单击以展开“行为”下的“限制属性”,单击“队列长度”,输入队列长度的所需值,然后在“操作”窗格中单击“应用”。

    有关如何修改 IIS 7.5/7.0 <asp> 元素的 <limits> 元素中的属性的详细信息,请参阅 ASP Limits <> (https://go.microsoft.com/fwlink/?LinkId=157483) 。

 备注

由于此属性只能在服务器级别应用,因此修改此属性会影响在服务器上运行的所有网站。

优化 MaxPoolThreads 注册表项

此设置指定要为每个处理器创建的池线程数。 池线程watch请求和处理传入请求的网络。 MaxPoolThreads 计数不包括 ISAPI 应用程序使用的线程。 通常,每个处理器不应创建超过 20 个线程。 MaxPoolThreads 是位于 HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\InetInfo\Parameters\ 的REG_DWORD注册表项,默认值为 4。

禁用 WCF 服务跟踪

使用配置编辑器工具 (SvcConfigEditor.exe) 在生产环境中禁用 WCF 服务跟踪。 有关配置编辑器工具的详细信息,请参阅 配置编辑器工具 (SvcConfigEditor.exe) (https://go.microsoft.com/fwlink/?LinkID=127070) 。

为 IIS 7.5/7.0 集成模式配置 ASP.NET 2.0 MaxConcurrentRequests

当 ASP.NET 2.0 托管在集成模式下的 IIS 7.5/7.0 上时,使用线程的方式与经典模式下的 IIS 7.5/7.0 上的处理方式不同。 当 ASP.NET 2.0 以集成模式托管在 IIS 7.5 上时,ASP.NET 2.0 会限制并发执行请求的数量,而不是并发执行请求的线程数。 对于同步方案,这将间接限制线程数,因为请求数将与线程数相同。 但对于异步方案,请求数和线程数可能会大相径庭,因为请求数可能远远多于线程。 在集成模式下在 IIS 7.5 上运行 ASP.NET 2.0 时,将忽略machine.config中“httpRuntime”元素的 minFreeThreads 和 minLocalRequestFreeThreads。 对于 IIS 7.5 集成模式,HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\ASP.NET\2.0.50727.0内名为 MaxConcurrentRequestsPerCPU 的 DWORD 确定每个 CPU 的并发请求数。 默认情况下,注册表项不存在,每个 CPU 的请求数限制为 12。 .NET Framework 3.5 SP1 包括 v2.0 二进制文件的更新,该二进制文件支持通过 aspnet.config 文件配置 IIS 应用程序池。 此配置仅适用于集成模式, (经典/ISAPI 模式) 忽略这些设置。下面列出了具有默认值的新aspnet.config配置部分:

<system.web>    <applicationPool maxConcurrentRequestsPerCPU="12" maxConcurrentThreadsPerCPU="0" requestQueueLimit="5000"/> </system.web>

在 IIS 7.5 集成模式下,machine.config文件的“processModel”部分中的 maxWorkerThreads 和 maxIoThreads 参数本身不用于控制正在运行的请求数,但它们仍用于控制 ASP.NET 使用的 CLR 线程池的大小。 当machine.config的“processModel”部分具有“autoConfig=true” (这是默认设置) 时,这将为每个逻辑 CPU 提供最多 100 个工作线程 (MaxWorkerThreads) 。 因此,具有 2 个双核 CPU 的常见商品服务器将具有 400 个 MaxWorkerThreads。 这应该足以满足所有要求,但要求最苛刻的应用程序。

有关在 IIS 7.5 上配置 ASP.NET 线程使用情况的详细信息,请参阅 Thomas Marquardt 关于 IIS 7.0 ASP.NET 线程使用情况的博客 (https://go.microsoft.com/fwlink/?LinkId=157518) 。

为 IIS 7.5/7.0 集成模式配置 ASP.NET 4 个 MaxConcurrentRequests

在 .NET Framework 4 中,maxConcurrentRequestsPerCPU 的默认设置为 5000,这是一个非常大的数字,因此将允许并发执行大量异步请求。 有关详细信息,请参阅 <applicationPool> 元素 (Web 设置) (https://go.microsoft.com/fwlink/?LinkID=205339) 。

对于 IIS 7.5/7.0 集成模式,HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\ASP.NET\4.0.30319.0中名为 MaxConcurrentRequestsPerCPU 的 DWORD 确定每个 CPU 的并发请求数。 默认情况下,注册表项不存在,每个 CPU 的请求数限制为 5000。

启用 IIS HTTP 压缩

若要更有效地使用可用带宽,请启用 IIS HTTP 压缩。 无论内容是从本地存储还是 UNC 资源提供,HTTP 压缩在启用了压缩的浏览器和 IIS 之间提供更快的传输时间。

  • 若要在 Web 服务器级别配置压缩,请执行以下操作:

    1. 单击 “开始”,指向“ 所有程序”,单击“ 管理工具”,然后单击“ Internet Information Services (IIS) 管理器”。

    2. 在“ 连接 ”窗格中,选择 Web 服务器,单击以选择“ 功能视图”,然后双击 “压缩 ”功能。

    3. 设置所需的压缩选项,然后单击“操作”窗格中的“应用”。

  • 在网站级别配置压缩:

    1. 单击 “开始”,指向“ 所有程序”,单击“ 管理工具”,然后单击“ Internet Information Services (IIS) 管理器”。

    2. 在“ 连接 ”窗格中,单击以展开 “网站”,单击以选择要为其配置压缩的网站,单击以选择“ 功能视图”,然后双击 “压缩 ”功能。

    3. 设置所需的压缩选项,然后单击“操作”窗格中的“应用”。


本文链接:http://www.hqyman.cn/post/4445.html 非本站原创文章欢迎转载,原创文章需保留本站地址!

分享到:





休息一下,本站随机推荐观看栏目:


« 上一篇 下一篇 »

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

您的IP地址是: