iis负载均衡-application request route详解

iis负载均衡-application request route详解

ID:13791031

大小:1.22 MB

页数:66页

时间:2018-07-24

iis负载均衡-application request route详解_第1页
iis负载均衡-application request route详解_第2页
iis负载均衡-application request route详解_第3页
iis负载均衡-application request route详解_第4页
iis负载均衡-application request route详解_第5页
资源描述:

《iis负载均衡-application request route详解》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、IIS负载均衡-ApplicationRequestRoute详解第一篇:IIS必须掌握的知识正确而合理的配置IIS是构建一个高性能和高可扩展应用的基础。虽然很多的时候采用默认的配置就已经可以处理一般的情况,但是随着站点应用的发展,特别是当访问量稍微大一点的时候,就会暴露出很多我们认为的“奇奇怪怪”的问题。所以,对IIS以及相关的配置有一个全面的理解是非常有必要的,不仅仅可以很好的帮助我们来搭建IIS宿主环境,而且还对我们应用代码的编写以更多的指导,而且也是性能优化中一个非常重要的组成部分。我们首先会讲述IIS的一些知识和它的架构,这是理解后续内容的基础。本篇的议题如下

2、:内核模式与用户模式IIS与应用程序池初窥IIS的内核Http.sys解析内核模式与用户模式对于一台应用程序服务器而言,它的两个比较重要的功能就是:1.监听从客户端发送来的Http请求;2.调用请求处理程序从监听者那里获取请求,然后处理,并且把响应发送给监听者,然后由监听者发送回给客户端。为了使得IIS的性能和可伸缩性最大,Microsoft将HTTP的监听者放在了操作系统的内核模式中,同时Microsoft也重写了请求处理程序,使得所有的应用程序有着更好的独立性,并且也加入了很多配置和特性,使得性能和稳定性有了大幅度的提升。首先我们就来讲讲“内核模式”与“用户模式”的

3、一些概念,因为后面的文章会大量的用到这些概念。所谓的内核模式,就是Windows内部核心的操作,在内核模式中运行的进程有着很高的优先级,可以直接访问硬件以及系统底层的一些数据例如管理线程,进程,管理I/O设备的驱动等。用户模式就是除了内核模式以外的操作,例如位来自用户应用程序的请求提供服务,包括IIS,SQLServer等。所有用户模式的应用程序通过运行在内核模式的执行层访问资源,例如,如果应用程序要进行磁盘的I/O,那么该请求就会提交到内核模式的执行层,由它来执行请求并且将结果返回给发出请求的用户模式的进程。Http请求监听者(HTTP.sys)是运行在内核模式中的,

4、所以允许它已经非常高的优先级运行,并且还可以直接的访问网络接口,这样极大的提升了性能,所以这样使得IIS对HTTP的请求的响度度也大大的提高。下面,我们就开始进入今天的第二个议题。IIS与应用程序池从IIS6引入了应用程序池的概念,应用程序池使得每个Web程序都在一个独立的环境中运行。一个或者多个Web应用可以加入到一个应用程序池中,每一个应用程序池都在一个单独的进程中运行,这就意味着即使一个应用程序池崩溃了也不会影响其他的应用程序池。出了独立性以外,应用程序池还允许我们进行更多的配置,例如,配置应用程序池运行中的进程运行是的标识(即,以何种身份进行运行),还可配置.N

5、ETFramework的版本,健康检查,以及与高性能高可用的一些设置。对于不同的Web应用程序,其性能,稳定性等都是不一样的,所以正确的配置会对站点的影响非常大(其实很多的时候,我们采用了很多的默认的配置)。在每一个应用程序池中接受至少有一个运行的进程来接受与处理请求,我们就将这个进程称之为“工作进程”。当一个发送到特性的URL请求被IIS接受之后,请求就会被转发给正确的应用程序池,然后被池中的工作进程处理。一个应用程序池可以配置为运行多个工作进程,这个时候,我们就将这个情况称为“WebGarden”(中文的意思翻译出来就变味了)。当一个池被配置称为WebGarden的

6、时候,请求就会被转发给其中的一个进程处理。说了这么多,我们就来看看一些比较深一点点的话题。初窥IIS的内核正如之前我们所说的,为了使得IIS的性能最高,那个介绍HTTP请求的监听者运行在内核模式中。被接受到的请求被放在对应的应用程序池的队列中,之后被用户模式的工作进程处理。如果我们从这里来分析性能的话,大家其实可以分析出:处理一个ASP.NET的请求,其实需要涉及到三次的线程切换与二次的模式切换,所以请求的处理时间和代价是相当的高的,我们后面会讲述如何尽量的避免这样的情况。为了使得大家更加的清楚,我们用一个图来说明一下:上图显示了在IIS7中的请求的处理的一般流程,但是

7、这IIS6的处理流程还是有点区别的。在IIS6中,WWWService包含了WindowsProcessActivationService(WAS)的功能。朋友们可能担心上面的图看不懂,没关系,我们就来具体的看看。Http.sys解析我们这里的讲述就以上图做参照来说明。当一个请求被HTTP监听者(HTTP.sys)接受之后,它根据请求的URL进行匹配,然后马上就把请求放在一个内核模式的不同的队列中,以便这些请求可以被用户模式中的应用程序池中工作进程获取,然后处理。这里之所以要把请求放在队列中是为了快速的释放HTTP监听线程,从而使得HTT

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。