构建高性能.NET应用配置高可用IIS服务器第五篇.pdf

构建高性能.NET应用配置高可用IIS服务器第五篇.pdf

  1. 1、本文档共5页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
构建高性能.NET应用配置高可用IIS服务器第五篇.pdf

AgileSharp-构建高性能.NET 应用之配置高可用IIS 服务器-第五篇 构建高性能.NET 应用之配置高可用IIS 服务器-第五篇IIS 常见问题之:工作进程回收机制 (中) 我们在本篇中接着讲述 “工作进程回收机制”。 本篇文章的议题如下: 工作进程回收机制讲解 基于时间的回收机制 基于请求数的回收机制 基于内存使用的回收机制 基于活动状态的回收机制 基于请求数的回收机制 这种基于请求数量回收的机制非常的好理解:当我们的应用程序收到的请求数量达到了一 个阀值之后,就开始对应用程序池中的工作进程使用的资源进行回收,设置的方法和之前讲述的 基于时间的基本类似,如图: 其实很多的时候,引起这种回收机制的原因都是应用程序已经无法处理过多的请求,导致 了请求处理失败,而不得不开始运行这种回收机制。 AgileSharp() 安捷雨希提供性能优化,架构设计咨询,内训,解决方案 AgileSharp-构建高性能.NET 应用之配置高可用IIS 服务器-第五篇 基于内存使用的回收机制 应用程序池的回收是可以通过它所使用的内存来设置的,可以通过设置它已经使用的内存和它的虚 拟内存两个方面来决定何时进行回收,大致的情况如下图: 我们使用基于内存的工作进程回收机制可以在一定的程度上面防止内存泄露或者内存过度分配的情 况。同时,有一个需要清楚的的就是:很多的时候,我们的Web 应用程序的性能在很大的程度上来依赖缓 存,特别是在ASP.NET 中使用它的缓存API 的时候,我们要非常的清楚这些问题。缓存数据空间的大小不 是无限制的,它的大小是可以配置的,并且有可能出现这样的一种情况:数据在前一秒缓存进入,下一秒 在使用的时候缓存的数据就没有了,可能就会导致“找不到对象“等问题,这个时候,原因就是设置的缓 存空间大小已经达到了设置值,导致了工作进程回收,使得数据全部丢掉。更多的关于这个方面的讲述, 可以参看我的另外的一篇文章:使用缓存的9 大误区(上) 另外,设置基于内存使用的回收机制,可以让回收机制“监控“内存的时候,防止之前所说的内存 泄露等情况。 说了这么多,那么我们就来看看如何来设置基于内存的回收机制。 专用内存使用情况(Private bytes) 这个设置可以限制在一个工作进程被回收之前可以使用的专用的不共享的内存的大小。其实说到这 里,估计有些朋友又开始不明白了,因为这已经涉及到了Window 内存管理的一些知识,大家可以参看这篇 文章:window 内存管理知识普及 。 注:可以说Window 内存,进程调度等知识都是性能优化过程中需要掌握的基础,其实现在很多的 开发人员是完全不懂这些东西,仅仅只是知道C#语法,然后使用基本的语法规程编程,如果真是这样,技 术很难提升到很高的层面。 AgileSharp() 安捷雨希提供性能优化,架构设计咨询,内训,解决方案 AgileSharp-构建高性能.NET 应用之配置高可用IIS 服务器-第五篇 在IIS6 中,这个设置在应用程序“属性“的“回收“选下卡中,被称之为“最大使用的内存 “, 单位是Mb,如下: 在IIS7 中就称之为“专用内存” (其实也是内核模式可使用的内存数量),单位为Kb。 这个值的设置对ASP.NET 应用中的缓存和Session 使用至关重要。如果这个值设置的太小,同时我 们的应用程序又是非常大的依赖缓存,那么,就会导致工作进程频繁的被回收,很多的在进程中保存的数 据就会丢失,后果可想而知。 在ASP.NET2.0 以后,缓存机制通过使用缓存剪裁策略来避免工作进程回收。什么意思呢? 就是,缓存机制会根据一些策略(例如,最近最少使用算法等)来将缓存中的一些数据移除,将空 闲的位置让给别的数据,从而避免缓存空间使用过大,从而避免了内存的使用太多而达到回收的阀值。我 们可以在web.config 中使用privateBytesLimit 设置来配置缓存裁剪的级别,如下: 下面我们就看看在默认的情况下,何时出现缓存剪裁的问题: 用户模式内存大小 =2GB 2GB(32 位的操作系统) 2GB(64 位操作系统) 60%*物理内存或者800Mb 60%*

您可能关注的文档

文档评论(0)

ziyouzizai + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档