当前位置 主页 > iis相关 >

    怎么提升IIS性能?

    栏目:iis相关 时间:2018-10-09 14:40

      Metabase.xml文件是IIS的设置文件,每个网站已经IIS的设置都在这个下面,所以在修改这个文件之前要把这个文件备份一下。这个文件在C:/WINDOWS/system32/inetsrv/Metabase.xml,前篇的启用IIS的静态压缩也可以在文件下设置,也可以在IIS的图形界面下设置。
     
      对IIS的性能优化要对症下药,对不同的网站有不同的优化方法,在分析你网站的特点的情况下,然后对Metabase.xml文件里面的参数进行调节,提高IIS的性能。
     
      AppAllowDebugging
     
      作用:指定在服务器上是否启用ActiveServerPage(ASP)调试。在启用此属性的情况下,IIS应用程序线程是序列化的;对于每个应用程序,一次只允许执行一个线程。序列化线程会对Web服务器性能产生负面影响。建议您在所有产品服务器上将此属性设置为false。
     
      注意:当允许进行服务器端调试时,将串行化IIS应用程序线程:对于每个应用程序,同一时间只允许运行一个线程。这会影响繁忙站点的服务器性能。
     
      AspBufferingOn
     
      作用:该属性指定ASP应用程序的输出是否需要缓冲。如果将该值设置为true,在缓冲区刷新到客户端浏览器之前,应用程序的所有输出都集中到缓冲区里。启用了缓冲,ASP应用程序就必须在客户端浏览器收到任何输出前处理完所有的ASP脚本。因此,启用了缓冲的应用程序比没有启用缓冲的似乎要慢一些,尽管启用缓冲的脚本所用的总时间更少。所以,如果启用了缓冲,那么请考虑使用ASP内置的Response对象的Flush方法在处理脚本的同时将内容一份份的传递给用户。
     
      注意:如果将该属性设置为false,那么ASP脚本的输出一旦可用就会输出到客户端浏览器。如果没有启用缓冲,那么所有修改现有的HTTP头或生成新头的方法必须在内容的主体传送到客户端浏览器之前执行。如果启用了缓冲,这个限制就没有必要了。建议您在所有产品服务器上将此属性设置为true。
     
      AspQueueConnectionTestTime
     
      作用:IIS将所有的ASP请求放置到队列中。如果请求在队列中等待的时间比AspQueueConnectionTestTime属性指定的时间(以秒为单位)长,则ASP将在执行请求前检查确定客户端是否仍是连接的。如果客户端已断开连接,则不处理该请求并且从队列中删除该请求。
     
      注意:多数情况下,用户不会等待处理ASP页面超过几秒的时间。虽然最长等待时间随用户不同而不同,但通常可接受的最长时间是大约10秒。可以使用AspQueueConnectionTestTime属性来确保IIS不浪费时间来处理已被用户放弃的请求。当处于ASP将要开始处理脚本的状态时,该属性对于使ASP进行有效处理非常有用。一旦脚本在运行,应用程序仍然应该继续使用ASP内置Response对象的IsClientConnected方法在合适的时候对客户端连接进行检查。
     
      AspRequestQueueMax
     
      作用:该属性指定了允许进入队列的并发ASP请求的最大数目。在队列占满时,任何试图请求ASP文件的客户端浏览器都将收到HTTP500"服务器太忙"的错误。
     
      注意:在IIsWebService级别上设置该属性可运用于所有级别上的所有进程内的和共用的进程外应用程序项。进程内的和共用的进程外应用程序忽略IIsWebServer级别及更低级别上的配置数据库设置。但是,如果该项是进程外的隔离应用程序,则使用IIsWebServer级别或更低级别的设置。
     
      AspScriptEngineCacheMax
     
      作用:该属性指定了ASP页面将在内存中保持缓存的脚本引擎的最大数目。根据应用程序中的内容的类型调整默认值。(默认值不包括当前正在运行的脚本引擎)如果有成千上万的不同页,您会体验到提高缓存大小的一些好处:大多数频繁请求的页都可以轻松地访问到。脚本引擎缓存的好处意味着您可以无需将模板重新编译为字节代码。
     
      AspScriptFileCacheSize
     
      作用:该属性指定了要缓存的预编译脚本文件数。如果设置为0,则不缓存任何脚本文件。如果设置为4294967295,则缓存所有脚本文件。该属性用于调整性能,依赖于可用内存数和脚本文件传输量。
     
      注意:配置数据库将无穷大表示为DWORD值4294967295(0xFFFFFFFF);VBScript则将无穷大表示为十六进制值&HFFFFFFFF。以前的IIS版本将无穷大表示为-1。
     
      AspSessionMax
     
      作用:属性指定了IIS允许的最大并发会话数。当达到该限制时,如果客户端试图与IIS建立新连接,则客户端将接收到错误信息(HTTP500"服务器太忙")。
     
      注意:配置数据库将无穷大表示为DWORD值4294967295(0xFFFFFFFF);VBScript则将无穷大表示为十六进制值&HFFFFFFFF。以前的IIS版本将无穷大表示为-1。ASP需要超过保留所有会话所需数量一定量的内存。虽然可以使用AspSessionMax来限制该内存超出,但是通常情况下使用AspSessionTimeout属性来管理IIS中会话对象的生存期会更合适,一旦达到限制将拒绝客户端浏览器。
     
      AspSessionTimeout
     
      作用:属性指定了完成最后的与Session对象相关的请求后,保留该对象的时间(以分钟为单位)。可以使用ASP内置Session对象的Timeout属性来在脚本中覆盖该属性。
     
      注意:可以使用AspSessionTimeout来很好的调整ASP应用程序。由于Session对象消耗内存资源,因此使用该属性来限制单个Session的生存期可以使应用程序具有更好的可缩放性。
     
      AspProcessorThreadMax
     
      作用:该属性指定IIS可创建的每个处理器的最大工作线程数。(IIS所允许的每个ASP进程的工作线程的最大数量是AspProcessorThreadMax乘以服务器上处理器的数量。可以降低此值然后监视性能。如果性能降低,请恢复AspProcessorThreadMax原来的值。)
     
      注意:该设置通常会明显地影响Web应用程序的可扩展性和服务器的性能。因为该属性定义了可同时执行的ASP请求的最大数量,所以除非ASP应用程序扩展调用外部组件,该设置都将保持默认值。在这种情况下,可以增加AspProcessorThreadMax的值。这样做允许服务器创建更多的线程来处理更多的并发请求。如果更改了此属性的值,则必须停止然后重新启动Web服务器实例以使更改生效。该属性的万维网发布服务(WWW服务)设置在所有级别上适用于所有的进程内的和共用的进程外应用程序节点。对于进程内的和共用的进程外应用程序,忽略Web服务器或更低级别上的配置数据库设置。但是,如果该节点是进程外的隔离应用程序,则使用Web服务器级别或更低级别的设置。
     
      AspTrackThreadingModel
     
      作用:该属性指定了IIS是否检查应用程序创建的任意组件的线程模块。
     
      注意:该配置数据库属性通常最好保留默认值(false),以便ASP不使用系统资源来跟踪线程模块,ASP应用程序提供最好的性能。如果将该属性设置成false,并且允许所创建的组件访问应用程序的作用域,则这些组件必须聚合自由线程封送拆收器。如果不聚合自由线程封送拆收器,则当创建组件实例时ASP将生成错误。有关该主题的详细信息,请参阅PlatformSDK中的"建造ASP组件"。将该属性设为默认值(false)的另一个原因是,任意在ASP应用程序中创建的没有OnStartPage或OnEndPage方法的对象都比其他的要发布的早并且会降低应用程序的可缩放性能。
     
      CacheISAPI
     
      作用:该属性指示在第一次使用ISAPI扩展后是否在内存中进行缓存。如果将该属性的值设置为true,则ISAPI扩展一旦载入将一直驻留在缓存中,直到服务器停止工作。如果将该属性的值设置为false,则若不再使用ISAPI扩展,就将其从内存中卸载。是否对ISAPI扩展进行缓存,取决于将其载入内存使用时该属性的值。因此,如果在扩展已载入并进行缓存后更改属性,则只有在重新启动Web服务器后,所做更改才会对扩展生效。
     
      注意:将该属性设置为false可能引起严重的性能问题。而且当属性设置为false时,某些扩展无法正常运行。