IIS优化设置记录

下面是进行更改后的所有过程记录及描述.其中主要针对IIS数据库属性配置文件进行了设置,现在C:\WINDOWS\system32\inetsrv目录下的Metabase.xml是更改后的配置文件,原始的备份配置文件及注册表备份均在E:\wxhconfig下面。如果直接将备份好的已经更改配置后的Metabase.xml文件进行覆盖到C:\WINDOWS\system32\inetsrv目录下,配置是没有更改的(更改过程中发现的),需直接编辑。

一、基本设置

  1. 虚拟内存。
  1. 将虚拟内存从C分区调到E分区。(需重启)

2、应用程序池AppPool_OPPO_999 #1(已创建)
  1)回收选项:暂取消内存回收(工作进程回收)。

  2)运行状况选项:取消“启用Ping”。理论上会略微增加性能,根据情况是否启用。

  3)性能选项:取消请求核心队列限制,如有2000名用户登录,应设为3000。默认1000将只能处理650个并发用户,此后将拒绝新用户。配置WEB园的进程数量多于一个时,测试发现CPU使用率明显增高。

3、网站appstore for oppo
  1)记录访问。(未取消)

  2)启用缓冲。(没有设置保留默认)

  3)添加索引资源,(默认,提高访问效率)

  4)选中“启用内容过期”,设置为30天。这个设置的作用在于, 像图片, css文件, 脚本文件, 静态HTML文件等这些几乎不会改变的内容, IIS会在回发给浏览器的Header中声明这个文件30后才会过期. 这样, IE在文件没有过期的这段时间不会浪费连接和带宽来重复下载这些文件。(根据情况可以设为一周或其他)

  5)删除不必要的扩展名映射。(不需的扩展映射,删除会好一些,没有删除)

  6)在“网站”—>右键“属性”—>服务:设置HTTP压缩,选择“压缩静态文件”。启用压缩输出可以大大减少网络流量, 提高页面响应速度(同时还需设置数据库属性,见数据库属性设置优化)。

  7)启用并排集合。(没有设置)。

  8)取消写入权限。(uploadfile保持写入权限)

4、会话超时

  1)虚拟目录或网站右键->属性->“虚拟目录”选项卡->配置—>“选项”选项卡->启用会话状态,会话超时(分钟) :此处设置ASP session时间。 设置为20分钟

2)虚拟目录或网站右键->属性->“ASP.NET”选项卡->编辑配置->“状态管理”选项卡->会话超时(分钟) :此处相当于编辑Web.config中的timeout。保持默认的20分钟

二、数据库设置

1)AspProcessorThreadMax="200",更改前25,IIS默认25
指定 IIS 为每个处理器创建的工作线程的最大数量。该设置通常会明显地影响 Web 应用程序的可扩展性和服务器的性能。因为该属性定义了可同时执行的 ASP 请求的最大数量,所以除非 ASP 应用程序扩展调用外部组件,该设置都将保持默认值。在这种情况下,可以增加该值。这样做允许服务器创建更多的线程来处理更多的并发请求。指定 IIS 为每个处理器创建的工作线程的最大数量(默认值为25)。 IIS 所允许的每个 ASP 进程的工作线程的最大数量是该值 乘以服务器上处理器的数量。可以降低此值然后监视性能。如果性能降低,请恢复 AspProcessorThreadMax 原来的值。作用是控制Asp.net的最大同时处理线程数, 也就是同时处理多少并发请求. 一般来讲, 设置为200左右比较理想(默认值25太小). 需要注意的是这个值不是越大越好, 太大的话, 反而会因为CPU在切换线程上消耗了大量时间而降低应用的处理效率.
2)AspQueueTimeout="4294967295",更改前4294967295,IIS默认4294967295
属性指定了允许 ASP 脚本请求在队列中等待的时间(以秒为单位)。当从队列中拉出请求时,系统检查这些请求是否已过期(等待的时间长于该参数的值)。过期的请求被表示服务器太忙的信息拒绝。
3)AspScriptFileCacheSize="4294967295",更改前500,IIS默认500
指定存储在 ASP 模板缓存中的预编译脚本文件的数量。如果设置为 0,则不缓存任何脚本文件。如果设置为4294967295,则缓存所有被请求的脚本文件。如果您有许多不同的 ASP 页,则可以增大默认值。

不要将此属性的值设置为 0。如果值为 0,则会关闭所有 ASP 缓存,会严重影响服务器的性能。
4)AspSessionTimeout="10",更改前20,IIS默认10
指定在发出与对象关联的最后一个请求之后会话对象保持的默认时间长短(以分钟为单位)。对于利用会话的应用程序,缩短会话超时时间以减少服务器所需要的开销可能是明智的做法。然而,如果并发会话的比例很大,则可能有必要使用最大的会话超时值。

5)AspSessionMax="4294967295",更改前4294967295,IIS默认4294967295

指定了 IIS 允许的最大并发会话数。当达到该限制时,如果客户端试图与 IIS 建立新连接,则客户端将接收到错误信息(HTTP 500“服务器太忙”)。

6)AspRequestQueueMax="8192",更改前1000,IIS默认500
指定允许进入队列的并发 ASP 请求的最大数量。此设置的效果取决于应用程序的行为。如果请求的执行时间非常短,且在队列中的时间非常短,那么提高默认值的限度是合理的。属性指定并发 ASP 请求在队列中允许的最大的数量。所有的客户端浏览器尝试请求 ASP 文件队列已满时给出了一个 HTTP 500"服务器太忙"错误消息。当出现500错误时可增加该值。建议:这个属性控制Asp.net最大请求队列, 对于目标人群5000-10000人的系统来说, 设置到8192是个保险的数字, 如果太小, 系统会频繁报500错误(对小系统而言, 默认的3000已经足够).

7)MaxConnections="4294967295",更改前4294967295

这个属性其实在图形界面也可以改的, 之所以提出来是因为这个要是太小了很容易就会出现网站很慢或"连接数太多"错误。
8)MinFileBytesPerSec="240",更改前240,IIS默认240
属性用于配置从服务器发送数据到客户端以及从客户端返回数据到服务器时 HTTP.sys 强制执行的最小吞吐量。MinFileBytesPerSec 属性通过以最小的数据量保持连接,来禁止恶意的或软件工作不正常的客户端消耗资源。如果吞吐量低于 MinFileBytesPerSec 设置的值,则终止连接。HTTPER日志中若出现Timer_MinBytesPerSecond 和 Timer_ConnectionIdle,此项可设置0。Timer_ConnectionIdle表示链接没有关闭造成的,查看日志发现有许多Timer_ConnectionIdle,故设置为0

9)HcSendCacheHeaders="FALSE" 更改前FALSE,IIS文档默认TRUE

如果将该属性设置为 true,Cache-Control 和 Expires 标头将与所有的压缩响应一起发送。但是,如果将该属性设置为 false,仅发送 HTTP 1.1 Vary 标头。

10)AspMaxDiskTemplateCacheFiles="4294967295",更改前2000,IIS默认4294967295

属性值指定存储已编译 ASP 模板的最大数量。

11)AspQueueConnectionTestTime="3",更改前3,IIS默认3

IIS 将所有的 ASP 请求放置到队列中。如果请求在队列中等待的时间比 AspQueueConnectionTestTime属性指定的时间(以秒为单位)长,则 ASP 将在执行请求前检查确定客户端是否仍是连接的。如果客户端已断开连接,则不处理该请求并且从队列中删除该请求。建议:设为5秒(客户忍耐极限)
12)AspScriptEngineCacheMax="8192",更改前250 ,IIS默认120
指定 ASP 页缓存在内存中的脚本引擎的最大数量。根据应用程序中的内容的类型调整默认值。(默认值不包括当前正在运行的脚本引擎)如果有成千上万的不同页,您会体验到提高缓存大小的一些好处。建议:对于有很多aspx, ascx文件的项目(比如数百个)来说, 默认的250显得较小, 容易经常出现重编译的现象, 影响响应时间, 建议设置成更大的数值(如8192)
13)ConnectionTimeout=”600”,更改前120,IIS默认900
属性指定在断开非活动连接前,服务器等待的时间(以秒为单位)。
14)AspBufferingOn="TRUE",更改前FALSE,IIS默认TRUE
指定 ASP 应用程序的输出是否需要缓冲。如果将该值设置为 true,在缓冲区刷新到客户端浏览器之前,应用程序的所有输出都集中到缓冲区里。启用了缓冲,ASP 应用程序就必须在客户端浏览器收到任何输出前处理完所有的 ASP 脚本。因此,启用了缓冲的应用程序比没有启用缓冲的似乎要慢一些,尽管启用缓冲的脚本所用的总时间更少。所以,如果启用了缓冲,那么请考虑使用 ASP 内置的 Response 对象的 Flush 方法在处理脚本的同时将内容一份份的传递给用户。如果将该属性设置为 false,那么 ASP 脚本的输出一旦可用就会输出到客户端浏览器。如果没有启用缓冲,那么所有修改现有的 HTTP 头或生成新头的方法必须在内容的主体传送到客户端浏览器之前执行。如果启用了缓冲,这个限制就没有必要了。

15)AspMaxDiskTemplateCacheFiles="4294967295",更改前2000,IIS默认4294967295

属性值指定存储已编译 ASP 模板的最大数量。

16)AspCalcLineNumber="FALSE",更改前TRUE,IIS默认TRUE

该属性属性指定ASP是否计算和存储已执行代码的行号,以便在错误报告中提供。

17)AspExceptionCatchEnable="FALSE",更改前TRUE,IIS默认TRUE

该属性指定 ASP 页面是否捕获组件产生的异常。如果设置为 false (或者禁用),那么 Microsoft 脚本调试程序工具将不捕捉所调试的组件发生的异常。

18)AspExecuteInMTA="1",更改前0,IIS默认0

ASP 能够在一个多线程单元 (MTA) 中运行其全部线程。如果 COM 组件主要是自由线程或双线程组件,则将ASP线程作为 MTA 运行可显著改善性能。

19)AspScriptErrorSentToBrowser="FALSE" 更改前TRUE,IIS默认TRUE

属性指定了 Web 服务器是否将调试细节(文件名、错误、行号、描述)写到客户端浏览器,并且记录到 Windows 事件日志中。设置成 false 时,提供要发送的错误消息。

20)ContentIndexed="TRUE",更改前TRUE,IIS默认FALSE,相当于索引资源。

属性指定安装的目录索引程序是否应该检索该目录树下的内容。

21)DefaultDoc="index.htm,index.aspx”

更改前DefaultDoc="Default.htm,Default.asp,index.htm"

22)添加gzip压缩

<IIsCompressionScheme Location ="/LM/W3SVC/Filters/Compression/deflate"和

<IIsCompressionScheme Location ="/LM/W3SVC/Filters/Compression/gzip"下更改一样

所有HcDoDynamicCompression="FALSE",更改前TRUE,IIS默认TRUE

所有HcDoStaticCompression="TRUE",更改前FALSE,IIS默认TRUE

HcFileExtensions=”htm html css js xml txt”

HcOnDemandCompLevel="9"更改前10,IIS默认10

HcDynamicCompressionLevel=”9” 更改前0

表示压缩百分率。

23)HcCompressionBufferSize="8192" 更改前8192,IIS默认8192

属性指定 IIS 用来接收压缩数据的压缩缓冲区大小(以字节为单位)。该缓冲区既可以用于对静态数据按需进行压缩,也可用于压缩动态内容。较大的缓冲区可稍微加快压缩性能,但会占用更多的内存。

24)HcIoBufferSize="8192" 更改前8192,IIS默认8192

属性指定 IIS 用来读取压缩文件的缓冲区大小(以字节为单位)。较大的缓冲区能稍微提高压缩性能,但会占用更多的内存。

25)HcMinFileSizeForComp="4096" 更改前1,IIS文档默认256。指定大于多少字节的输出才会被压缩
允许您指定使用按需压缩时文件必须包含的最小字节数。非常小的文件压缩效果不好,在某些情况下,压缩后的文件甚至比原文件大。如果将HcMinFileSizeForComp设置为 0,将压缩所有文件。

26)HcMaxQueueLength="8192" 更改前1000

三、注册表设置

HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\ InetInfo\Parameters下添加以下键值

DisableMemoryCache  设置DWORD值0 ,启用静态缓存

ListenBackLog       设置DWORD值120,默认15

MaxCachedFileSize   设置DWORD值512

MaxPoolThreads      设置DWORD值6,默认值4

MemCacheSize       设置DWORD值4096

ObjectCacheTTL      设置DWORD值60

HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\HTTP\Parameters下添加以下键值

UriEnableCache       设置DWORD值1

四、修改 ASP.NET 请求队列的限制

C:\WINDOWS\Microsoft.NET\Framework64\v2.0.50727\CONFIG/machine.config中找到如下所示的 processModel 元素<processModel autoConfig="true" />
将 processModel 元素替换为以下值:<processModel enable="true" requestQueueLimit="15000" />
查询 ASP.NET 时,服务的请求是通过IIS 和 ASP.NET 工作进程之间的管道来传递的,并且在该管道内排队。默认情况下,此队列最多可以包含5000个请求。如果请求超过5000个,用户将收到“503 – 服务不可以”错误消息,并被拒绝服务。尽管默认值对于相对数目较少的 Communicator Web Access用户来说足够了,但当用户数接近 4,500 时,就很容易超过请求队列的限制。由于这个原因,您可能需要将请求队列的限制增加到 15000。就能够提供足以处理所有客户端请求的大队列了。
以下暂未设置
  1)idleTimeout=”1:00:00” 当站点空闲指定的时间后将回收辅助进程(就是aspnet_wp.exe或w3wp.exe), 回收的结果就是: Session, Cache全部消失. 所以, 当内存不是很紧张的情况下, 可以设置为一个比较长的时间. 
  2)maxIoThreads=”20” IO操作线程的最大值, 一般来说, 我们使用WCF等远程调用, 以及数据库, 文件操作时, 都会占用IO线程. 所以, 这个数值还是高置为较大的值为好
  3)maxWorkerThreads=”20” 最大工作线程数, 说白了就是同时处理的请求数, 也就是HttpApplication的实例数, 因为每个请求都会占用一个线程.
  4) memoryLimit=”60” 这个也是一个导致Session消失的配置, 如果辅助进程占用的内存超过这个百分比, 就会被"回收".
  5) minIoThreads=”1” 这个配置的意思是至少应该保持多少个IO线程, 基本线程的创建和销毁也是比较耗时的, 这里应该设置一个较为适中的值, 比如50. 对于我们现在的服务器来说, 这点内存和切换开销还是值得的
  6)minWorkerThreads=”1” 类似上面的配置, 这个是控制工作线程的, 我设置为max的一半
  7)requestLimit=”Infinite” 不要修改这个配置, 不然网站又会在某个时间 "回收".
  8) requestQueueLimit=”5000” 等待处理的asp.net请求队列的最大长度, 对于很忙的网站可以适当设大点.
  9) responseDeadlockInterval=”00:03:00” 检查死锁的间隔时间, 如果设置的时间内有HTTP请求在排队, 而又没有一个请求返回响应, 那么系统认为发生了死锁. 虽然这个设置很有用, 但是一个健壮的网站不应该有死锁.
  10) timeout=”Infinite” 不要修改这个配置, 不然网站运行配置的时间后就会 "回收"
httpRuntime 元素
  1) 这个元素也是一个优化重点, 影响站点的整体表现
  2) appRequestQueueLimit=”5000” 又是一个队列, 总之, 如果出503的话, 尝试调整一下这个配置吧
  3) enableVersionHeader=”true” 控制Asp.net要不要在返回的Header中输出版本号, 在运营环境关闭可以节约少许流量.
  4) minFreeThreads=”8” 最少自由线程, 自由线程在收到请求后就可以马上开始工作, 所以, 对于可能有突发的大量请求的系统, 应该设置一个较大的值

以下是设置参考:

一、注册表设置优化

注册表路径HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\InetInfo\Parameters下可以创建下列DWORD值:

CheckCertRevocation | 数据类型:REG_DWORD | 默认值:0(已禁用) | 范围:0 - 1

指定是否检查客户端证书以便IIS撤销。默认情况下禁用CheckCertRevocation,因为检查公用证书颁发者通常通过Internet 进行,从而对性能有很大的影响。但是,如果您发布自己的证书并且撤销过程是在本地进行的,启用CheckCertRevocation可能很有用。

DisableMemoryCache | 数据类型:REG_DWORD | 默认值:0(已禁用) | 范围:0 - 1

DisableMemoryCache 禁用服务器缓存。要确保在所有产品服务器上将此参数设置为 0。如果将此参数设置为 1,那么就会禁用静态文件缓存。尽管禁用缓存可能会对调试有用,但这样做会严重降低产品服务器的性能。此参数无法使用IIS管理器进行配置。

ListenBackLog | 数据类型:REG_DWORD | 默认值:15 | 范围:1 - 250

指定在等待服务器注意的队列中允许的活动连接的最大数目。因为有增强的 IIS 功能性,所以通常没必要使用或修改该项目,但在通讯量非常大的时候,将该值最大提高到 300 会非常有益。

MaxCachedFileSize | 数据类型:REG_DWORD | 默认值:256 KB (262,144 bytes)

MaxCachedFileSize 确定可以放在缓存中的文件的最大大小。IIS 不缓存大于 MaxCachedFileSize 字节的文件。如果您正在运行专用的大型 Web 服务器,您可能需要将此值添加到注册表中,以提高缓存中可以保存的文件大小。

MaxPoolThreads | 数据类型:REG_DWORD | 默认值:4 | 范围:0 - 4,294,967,295(无限制)

MaxPoolThreads 指定为每个处理器创建的 I/O 工作线程的数量。每个池线程都监视网络请求并对其进行处理。MaxPoolThreads 计数不包括 ISAPI 应用程序使用的线程;它只表示可用于处理静态文件请求的工作线程数量。IIS 将按需要创建更多线程,以处理 ISAPI 请求。IIS 工作线程的总数不得大于 PoolThreadLimit。 默认情况下,只能同时运行四个 CGI 应用程序。如果运行多个 CGI 应用程序,应该增加该值以提高吞吐率。可以将 UsePoolThreadForCGI 的值在 ..\Services\W3SVC\Parameters下设置为 false(或 0),但这有点危险,因为在大量使用 CGI 应用程序时性能会明显降低。通常,每个处理器最好不要创建超过 20 个线程。

MemCacheSize | 数据类型:REG_DWORD | 默认值:大约是可用物理内存的一半,以兆字节表示 | 范围:0 - 2500MB

MemCacheSize 指定 IIS 用来作为其文件缓存的内存的最大量。如果 IIS 不需要这么多内存,可以留给其他应用程序使用。如果注册表中没有此值,IIS 用作缓存的量不超过 Web 服务器上可用内存的一半(是每隔 60 秒动态地计算出来的)。如果您正在运行专用的大型 Web 服务器,您可能需要将此值添加到注册表中,以提高 IIS 可以使用的内存量。当您将此对象添加到注册表时,必须以兆字节为单位指定此大小。

PoolThreadLimit | 数据类型:REG_DWORD | 默认值:2 * # MB | 范围:0 - 4,294,967,295(无限制)

PoolThreadLimit 指定可以在 Inetinfo.exe 进程中创建的 I/O 工作线程的最大数量,该设置将限制同时连接的数量。IIS 将 PoolThreadLimit 设置为计算机中当前 RAM 的兆字节数量的两倍。如果此值大于 256,则使用 256。如果注册表中已经有该值,那么它就会覆盖 IIS 的计算值。每个池线程都监视网络请求并对其进行处理,处理方法是,发回静态文件或者将该请求传递到 ISAPI 扩展 DLL(如 ASP)或传递到通用网关接口 (CGI)。如果 ISAPI 扩展同步对请求进行处理,它将需要花很长时间来处理请求,而且会占用工作线程,这样 IIS 处理其他请求的工作线程数会变少。因此,高质量编码的 ISAPI 扩展(如 ASP)实现它们自己的线程池,将请求放在队列中,并使用其自己的线程异步对请求进行处理,这样就不会占用 IIS 工作线程了。一般来说,如果您发现默认限度 256 个线程不够,那么 ISAPI 扩展的编码质量可能较差,占用了 IIS 工作线程.PoolThreadLimit 是包括所有 IIS 工作线程(包括 HTTP、FTP、NNTP 和 SMTP 服务)的硬性限制。PoolThreadLimit 总是大于或等于 MaxPoolThreads。ASP 线程池是单独的一组线程。其大小受 AspProcessorThreadMax 配置数据库设置的控制。未处理的 ASP 请求的最大数量是AspRequestQueueMax 和 AspProcessorThreadMax 的总和。PoolThreadLimit 是包含所有 IIS 线程的硬性限制,它始终大于或等于 MaxPoolThreads。

MinFileBytesPerSec | 数据类型:REG_DWORD | 默认值:240 | 范围:1 - 8192

当一个 Web 服务器发送文件到客户端时,将建立超时以表示服务器在结束传送之前允许它持续的时间。选择的超时设置是IIS管理器设置最大连接超时再加上文件的大小,然后除以指定的 MinFileBytesPerSec 值。例如,给大小为 100 KB 的文件的超时为 100 秒,或者为连接超时(如果后者更大)。

ObjectCacheTTL | 数据类型:REG_DWORD | 默认值:30(秒)| 范围:0 - 4,294,967,295(无限制)

控制生存时间(TTL)设置,它定义了对象保存在缓存内存中的时间长短。如果内存缓存中的对象并未被引用所定义的时间长短,该对象将被清除出缓存。如果系统内存受到限制,或者服务器的内容是动态的,可以使用一个较低的 TTL 来防止系统内存用于缓存大量的不稳定对象。将 ObjectCacheTTL 设置为 0xFFFFFFFF 将禁用对象缓存清理程序,并允许缓存对象保留在缓存中,直到它们被覆盖为止。如果服务器有足够的系统内存而且数据是相对静态的,禁用缓存清理程序将很有用,其他站点可以选择折衷,将此值提高到几分钟。

注册表路径HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\HTTP\Parameters下可以创建下列DWORD值:

CertChainCacheOnlyUrlRetrieval | 数据类型:REG_DWORD | 默认值:1 | 范围:0,1 | 警告代码:不适用

默认情况下,如果将 IIS 配置为使用客户端证书,将不会在链验证期间遵循 AIA 提示。此行为是为保证性能和安全而设计的。例如,此行为有助于防止 DoS 攻击。但是,在需要检索 AIA 时,此行为还可能导致证书被意外拒绝。要替代此行为可以将CertChainCacheOnlyUrlRetrieval设置为0。

EnableAggressiveMemoryUsage | 数据类型:REG_DWORD | 默认值:0 | 范围:0 - 1 | 警告代码:0

预分配非分页缓冲池内存。默认情况下,如果可用的非分页缓冲池内存不足 20MB,HTTP 服务将停止接受连接。在将此值添加到注册表中后,HTTP 服务将在可用非分页缓冲池内存不足 8MB 时停止接受连接。设置此注册表值可减少 Httperr.log 文件中的Connections_refused和 503 错误数。

EnableNonUTF8 | 数据类型:REG_DWORD | 默认值:1 | 范围:布尔型 | 警告代码:0

如果为零,则 Http.sys 仅接受 UTF-8 编码的 URL。如果不为零,Http.sys 也接受所请求 ANSI 或 DBCS 编码的 URL。

FavorUTF8 | 数据类型:REG_DWORD | 默认值:1 | 范围:布尔型 | 警告代码:0

如果不为零,Http.sys 总是先尝试将 URL 作为 UTF-8 解码;如果转换失败并且 EnableNonUTF8 不为零,则 Http.sys 尝试将其作为 ANSI 或 DBCS 解码。如果为零(并且 EnableNonUTF8 不为零),则 Http.sys 尝试将其作为 ANSI 或 DBCS 解码;如果失败,则它会尝试 UTF-8 转换。

MaxBytesPerSend | 数据类型:REG_DWORD | 默认值:65536 | 范围:1-0xFFFFF(字节)| 警告代码:0

替代 Http.sys 使用的 TCP 窗口大小。在具有较大带宽和较高延迟的网络环境中,此值越大,下载速度就越快。

MaxConnections | 数据类型:REG_DWORD | 默认值:MAX_ULONG | 范围:1024(1K)-2031616(2MB)连接 | 警告代码:1

功能:替代驱动程序中的 MaxConnections 计算。这主要是一种内存功能。

MaxEndpoints | 数据类型:REG_DWORD | 默认值:0 | 范围:0 – 1024 | 警告代码:1

功能:所允许的当前终结点对象的最大数目。默认值零表示最大数目是基于可用内存计算得出的

MaxFieldLength | 数据类型:REG_DWORD | 默认值:16384 | 范围:64-65534(64K-2)字节 | 警告代码:1

功能:设置每个标头的上限。请参见 MaxRequestBytes。它会将每个 URL 的最大字符数限制在大约 32K 左右。

UriEnableCache | 数据类型:REG_DWORD | 默认值:1| 范围:布尔型 | 警告代码:0

功能:如果不为零,则启用 Http.sys 响应和片段高速缓存。

警告代码0:无风险。

1:更改此注册表项被认为是极其危险的。此项会导致 Http.sys 占用更多内存,并且还可能增加易受恶意攻击的漏洞。

二、数据库优化

下表列出了对于调整 Web 服务器最重要的配置数据库属性。可以通过使用WMI或通过使用文本编辑器直接对配置数据库进行编辑来检索和更改这些属性。

配置数据库属性

描述

AspQueueConnectionTestTime

默认值为3

确保 IIS 不将时间浪费在处理用户已放弃的请求上。此设置会显著地改善 Web 应用程序的性能。如果某一请求在队列中的时间长于队列连接测试时间,那么服务器将在开始执行之前检查客户端是否仍处于连接状态。 此功能用于处理急躁的用户用在同一页面上的很多请求尝试填满请求队列的问题。应将该值设置得小一些,例如,三秒钟。是否更改此值要依据服务器运行的 Web 应用程序的类型来决定。长时间运行的 ASP 页面也可以使用 Response.IsClientConnected 方法检查客户端是否仍在等待页面的其余部分。长时间运行的页面应使用 Response.Flush 确保用户觉察到页面仍在连接中并且在进行高效的处理。

AspRequestQueueMax

默认值500

指定允许进入队列的并发 ASP 请求的最大数量。此设置的效果取决于应用程序的行为。如果请求的执行时间非常短,且在队列中的时间非常短,那么提高默认值的限度是合理的。

AspScriptEngineCacheMax

默认值120

指定 ASP 页缓存在内存中的脚本引擎的最大数量。根据应用程序中的内容的类型调整默认值。(默认值不包括当前正在运行的脚本引擎)如果有成千上万的不同页,您会体验到提高缓存大小的一些好处:大多数频繁请求的页都可以轻松地访问到。脚本引擎缓存的好处意味着您可以无需将模板重新编译为字节代码。

AspScriptFileCacheSize

默认值500

指定存储在 ASP 模板缓存中的预编译脚本文件的数量。如果设置为 0,则不缓存任何脚本文件。如果设置为4294967295,则缓存所有被请求的脚本文件。如果您有许多不同的 ASP 页,则可以增大默认值。不要将此属性的值设置为 0。如果值为 0,则会关闭所有 ASP 缓存,会严重影响服务器的性能。以前的 IIS 版本将无穷大表示为 -1

AspSessionMax

默认值4294967295

AspSessionTimeout

默认值10

AspSessionMax:属性指定了 IIS 允许的最大并发会话数。当达到该限制时,如果客户端试图与 IIS 建立新连接,则客户端将接收到错误信息500。
AspSessionTimeout:指定在发出与对象关联的最后一个请求之后会话对象保持的默认时间长短(以分钟为单位)。对于利用会话的应用程序,缩短会话超时时间以减少服务器所需要的开销可能是明智的做法。然而,如果并发会话的比例很大,则可能有必要使用最大的会话超时值。用该属性来管理 IIS 中会话对象的生存期会比AspSessionMax更合适,一旦达到限制将拒绝客户端浏览器。

AspProcessorThreadMax

默认值10

指定 IIS 为每个处理器创建的工作线程的最大数量。该设置通常会明显地影响 Web 应用程序的可扩展性和服务器的性能。因为该属性定义了可同时执行的 ASP 请求的最大数量,所以除非 ASP 应用程序扩展调用外部组件,该设置都将保持默认值。在这种情况下,可以增加 AspProcessorThreadMax 的值。这样做允许服务器创建更多的线程来处理更多的并发请求。如果更改了此属性的值,则必须停止然后重新启动 Web 服务器实例以使更改生效。该属性的万维网发布服务 (WWW 服务) 设置在所有级别上适用于所有的进程内的和共用的进程外应用程序节点。对于进程内的和共用的进程外应用程序,忽略 Web 服务器或更低级别上的配置数据库设置。但是,如果该节点是进程外的隔离应用程序,则使用 Web 服务器级别或更低级别的设置。

CacheISAPI

默认值true

指出 Internet 服务器 API (ISAPI) 扩展在使用之后是否在内存中缓存。如果此属性的值是 true,那么 DLL 文件在服务器停止之前会保留在缓存中。如果该值是 false,那么在扩展 DLL 不再使用之后将从内存中卸载 ISAPI 扩展。ISAPI 扩展是缓存还是不缓存,取决于在它们加载到内存供使用时此属性的值。因此,如果此属性在扩展被加载并缓存之后被更改,那么更改不会影响该扩展。 将此属性设置为 false 对于调试很有帮助,但建议您在所有产品 Web 服务器上将此值设置为 true。为每个请求重新加载 ISAPI 扩展 DLL 文件会降低性能。ASP.dll 本身就是一个 ISAPI 扩展,因此禁用此属性也会降低 ASP 性能。

AspBufferingLimit

默认值4194304

设置 ASP 缓冲区的最大大小。如果启动了响应缓冲,该属性将控制在进行刷新前 ASP 页面可以向响应缓冲区写入的最大字节数。

AspBufferingOn

默认值true

指定 ASP 应用程序的输出是否需要缓冲。如果将该值设置为 true,在缓冲区刷新到客户端浏览器之前,应用程序的所有输出都集中到缓冲区里。启用了缓冲,ASP 应用程序就必须在客户端浏览器收到任何输出前处理完所有的 ASP 脚本。因此,启用了缓冲的应用程序比没有启用缓冲的似乎要慢一些,尽管启用缓冲的脚本所用的总时间更少。所以,如果启用了缓冲,那么请考虑使用 ASP 内置的 Response 对象的 Flush 方法在处理脚本的同时将内容一份份的传递给用户。如果将该属性设置为 false,那么 ASP 脚本的输出一旦可用就会输出到客户端浏览器。如果没有启用缓冲,那么所有修改现有的 HTTP 头或生成新头的方法必须在内容的主体传送到客户端浏览器之前执行。如果启用了缓冲,这个限制就没有必要了。

AspExecuteInMTA

默认值0

ASP 能够在一个多线程单元 (MTA) 中运行其全部线程。如果 COM 组件主要是自由线程或双线程组件,则将ASP线程作为 MTA 运行可显著改善性能。默认情况下,AspExecuteInMTA 属性设置为 0,这意味着ASP不在 MTA 中执行。在应用程序级别上将该属性设置为 1 可以使 ASP 在 MTA 中运行。

以上注册表及数据库带有浅蓝色颜色项表示官方文档列出的性能调整参考项。

三、配置WEB园
为应用程序池创建 Web 园可在以下几个方面增强性能
1、可靠的请求处理:当应用程序池中的某个工作进程停止处理时(例如,当脚本引擎停止响应时),其他工作进程可以接受并处理该应用程序池的请求。

2、减少了资源争用:当 Web 园达到稳定状态时,按照循环方案每个新 TCP/IP 连接将分配给 Web 园中的一个工作进程。这可以产生平衡工作负荷和减少绑定到的工作进程的资源争用的效果。

步骤:

1)在 IIS 管理器中,展开本地计算机,展开“应用程序池”,右键单击该应用程序池,然后单击“属性”。

2)单击“性能”选项卡,然后在“Web 园”下的“最大工作进程数”框中,键入要向应用程序池指定的工作进程数。

3)单击“确定”。

Web园:在Web园中你可以配置此应用程序池所使用的最大工作进程数,默认为1,最大可以设置为4000000; 配置使用多个工作进程可以提高该应用程序池处理请求的性能,但是在设置为使用多个工作进程之前,请考虑以下两点:
  每一个工作进程都会消耗系统资源和CPU占用率;太多的工作进程会导致系统资源和CPU利用率的急剧消耗;

四、工作进程回收(根据需要可设置进程回收)

1、根据需要立即回收工作进程

1)在 IIS 管理器中,展开本地计算机,展开“应用程序池”,右键单击该应用程序池。

2)单击“回收”。

2、配置要在经过一定时间后回收的工作进程

1)在 IIS 管理器中,展开本地计算机,展开“应用程序池”,右键单击该应用程序池,然后单击“属性”。

2)在“回收”选项卡上,选中“回收工作进程(分钟)”复选框。

3)在“回收工作进程(分钟)”右侧的框中,键入在回收工作进程前的运行时间(分钟)。

4)单击“确定”。

3、配置要在处理一定数量的请求后回收的工作进程

1)在 IIS 管理器中,展开本地计算机,展开“应用程序池”,右键单击该应用程序池,然后单击“属性”。

2)在“回收”选项卡上,选中“回收工作进程(请求数目)”复选框。

3)在“回收工作进程(请求数目)”右侧的框中,键入在回收工作进程前处理的请求数目。

4)单击“确定”。

4、配置要在计划的时间回收的工作进程

1)在 IIS 管理器中,展开本地计算机,展开“应用程序池”,右键单击该应用程序池,然后单击“属性”。

2)在“回收”选项卡上,选中“在下列时间回收工作进程”复选框。

3)单击“添加”、“删除”或“编辑”以向列表中添加一个时间,删除一个时间或者更改现有的回收工作进程的时间。

4)单击“确定”。

5、配置要在消耗一定内存量之后回收的工作进程

1)在 IIS 管理器中,展开本地计算机,展开“应用程序池”,右键单击该应用程序池,然后单击“属性”。

2)在“回收”选项卡上,在“内存回收”下,选中“最大虚拟内存(兆)”复选框。

3)在“最大虚拟内存(兆)”右侧的框中,键入在回收工作进程前允许的最大虚拟内存数量。

4)选中“最大使用的内存(兆)”复选框。

5)在“最大使用的内存(兆)”右侧的框中,键入在回收工作进程前允许的最大内存数量。

6)单击“确定”。

注意:在将回收设置为在计划的时间进行时,如果修改了系统时间,则回收可能不在计划的时间进行。要避免无意中更改了回收时间,请在更改系统时间后,立即回收计划的工作进程。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
功能说明: ZYCH网站管理系统 V04基本模块有: 新闻模块、单页模块、产品模块、下载模块、会员模块、视频模块、留言模块、 系统设置:对网站全局进行设置。一键更改网站状态、网站头部风格、修改网站标题、设置网站基本资料和网站系统属性等。 管 理 员:管理员分为超级管理员或普通管理员,超级管理员具有网站最高权限,普通管理员部分功能被限制。 模板显示设置:可设置各栏目显示条数、分页记录数等。 栏目导航:对网站导航菜单以及菜单排序等进行管理。 HTML静态:一键开启静态功能,实现页面生成HTML,访问速度更快。 安全设置:SQL注入管理,后台可设置SQL防注入参数等,SQL注入记录,可封锁攻击者IP等。 后台登陆记录:可查看管理员登陆的相关记录、IP、登陆时间等。 页面管理:创建和管理企业资料如:企业简介、企业荣誉、相关资质、服务特点、营销网络等。并具有单独设置关键词等功能。 新闻增加:新闻可设置标题颜色、是否外部链接、新闻略缩图、是否推荐、新闻点击等。 新闻管理:可分类查看新闻、修改新闻、批量推荐、删除新闻等。新闻分类。 相册管理:可分类查看照片、修改照片、批量推荐、删除照片等。相册分类。 服务项目:管理、添加、删除 团队管理:管理、分类、添加、删除! 服务流程:管理、添加、删除 产品管理:产品共有二级分类。产品略缩图、产品价格等。支持在线购买。产品推荐等。 下载功能:下载分类管理、程序语言、运行平台、推荐等级、程序大小、下载统计等功能。 会员管理:前台会员注册,后台修改会员资料,设置是否注册审核等。 会员订单:后台处理产品订单、在线付款。 广告管理:增加图片、文字、FLASH广告,定义尺寸、类型、生成JS调用。 幻灯管理:新闻幻灯、幻灯修改等。首页与频道页分开展示 招聘管理:在线发布招聘信息、修改、删除、管理职位。查看前台用户投至简历。 应聘管理:会员投递简历可直接到邮箱网站系统和后台。 友情链接:增加文字或图片链接、按文字或图片分类管理。 留言管理:留言增加是否审核功能,增加回复功能。前台发表和显示留言列表。 数据管理:数据库压缩、备份、还原 搜索引擎SEO:本程序已经进行简单SEO优化,大部门页面均可单独设置关键词等。默认模板代码优化

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

lziyanl

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值