《性能优化.docVIP

  1. 1、本文档共10页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
《性能优化

IIS6.0 性能优化 2007/10/26 上午 09:27 IIS 6.0 应用了新的进程模型。内核模式的HTTP侦听程序(Http.sys)接收并发送HTTP请求(甚至可以使用它的响应缓存来满足请求)。工作进程注册URL子空间,Http.sys将请求发送到相应的进程(如果使用应用程序池,则发送到进程集合)。 图 4 展示了IIS 5.0和IIS 6.0进程模型之间的差异。IIS 5.0使用WinSock在端口80接受连接。请求由 inetinfo 进程负责接收,然后或者在进程内执行请求,或者将它交给dllhost 进程在进程外进行处理(为了达到隔离的目的)。响应则由 inetinfo 进程发送回去。 图 4???? IIS 5.0 和 IIS 6.0 的进程模型 IIS 6.0 进程依赖于内核模式的Web驱动程序Http.sys。在新的模型中,Http.sys负责管理连接和处理请求。请求可能通过Http.sys缓存得到满足,也可能被交给一个工作进程以便得到进一步处理(见图5)。可以配置多个工作进程,从而以较低开销实现了隔离。 Http.sys包括了一个响应缓存。当请求与响应缓存中的某个条目相匹配的时候,Http.sys直接从内核模式中发送缓存响应。图5展示了请求通过Http.sys得到处理的情况(请求也可能向上交给某个工作进程进行处理)。 图 5???? IIS 6.0中的请求处理 由于Web服务器既包括内核模式的组件,也包括用户模式的组件,必须对二者同时进行调整才能获得最佳性能。因此,针对特定负载的IIS 6.0调整工作需要对如下内容进行配置: · Http.sys(内核模式驱动程序)以及相关的内核模式缓存。 · 工作进程和用户模式IIS,包括应用程序池配置。 此外,我们还将在后文中讨论会对性能造成影响的其他参数。 内核模式的调整 与性能有关的Http.sys设置可以划分为两类:缓存管理以及连接和请求管理。所有的注册表设置都保存在以下条目中:HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Http\Parameters 如果HTTP服务正在运行,必须首先停止服务,然后重新启动计算机,以便让设置生效。 缓存管理设置 Http.sys具有的优点之一便是内核模式缓存。如果响应位于内核缓存中,那么可能可以完全通过内核模式来满足某个HTTP请求,这显然可以极大降低CPU处理请求的开销。但是,IIS 6.0的内核模式缓存是一种基于物理内存的缓存,每个条目都需要占用一定的内存空间。 缓存中的条目只有在被使用的时候才能提供益处。但是,条目在任何时候都会占用物理内存,不论它是否被使用。所以,需要对缓存某个项目带来的益处(能够直接从缓存中满足请求)以及它在整个生命期中的开销(需要占用物理内存)进行评估,并且考虑可用资源(CPU、物理内存)和工作负载的情况。Http.sys 试图仅在缓存中保存有用(经常被访问)的项目,但是,如果针对特定工作负载来调整Http.sys缓存,Web服务器的性能还可以获得一定程度的提高。 以下是一些有用的Http.sys内核模式缓存设置: · UriEnableCache. 默认值:1。设为非零值可以启用内核模式响应和分段缓存。对于大多数工作负载,缓存都应该保持启用。如果希望获得超低响应和较低的缓存利用率,那么请考虑禁用缓存。 · UriMaxCacheMegabyteCount. 默认值:0。设为非零值可以指定内核缓存可以使用的最大内存数量。默认值为0,允许系统自动调节缓存能够使用的内存数量。注意:只能设置可以使用的最大内存数量,而且系统可能不允许缓存增长到指定的大小。 · UriMaxUriBytes. 默认值:262144 字节(256 KB)。本参数设定了内核缓存中每个条目的最大长度。大于这个长度的响应或分段都不会被缓存。如果有足够的资金,可以考虑增加此参数的值。如果资金有限,而且大型的条目会挤掉较小的条目,那么可以将本参数设为更小的值。 · UriScavengerPeriod. 默认值:120秒。一个“清道夫”程序会定期扫描Http.sys缓存,在两次扫描期间没有被访问过的条目将被删除。可以将扫描周期设置为一个较高的值,以减少扫描次数。但是,如果访问频率低的老条目仍然保留在缓存中,缓存占用的内存将不断增加。如果将此期限设置得过低,扫描频率会过于频繁,而且可能导致缓存的过度清洗和扰动。 请求和连接管理设置 此外,Http.sys管理入站HTTP/HTTPS 连接,并且是在这些连接上处理请求的第一个层。它使用内部数据结构保存有关连接和请求的信息。虽然这样的数据结构可以按需创建(或释放),但如果在look-aside里表中保存部分数据结构留

文档评论(0)

1789811832 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档