构建高性能.NET应用之配置高可用IIS服务器-第一篇:IIS必须掌握的知识
正确而合理的配置IIS是构建一个高性能和高可扩展应用的基础。虽然很多的时候采用默认的配置就已经可以处理一般的情况,但是随着站点应用的发展,特别是当访问量稍微大一点的时候,就会暴露出很多我们认为的“奇奇怪怪”的问题。
所以,对IIS以及相关的配置有一个全面的理解是非常有必要的,不仅仅可以很好的帮助我们来搭建IIS宿主环境,而且还对我们应用代码的编写以更多的指导,而且也是性能优化中一个非常重要的组成部分。
我们首先会讲述IIS的一些知识和它的架构,这是理解后续内容的基础。
本篇的议题如下:
对于一台应用程序服务器而言,它的两个比较重要的功能就是:
1. 监听从客户端发送来的Http请求;
2. 调用请求处理程序从监听者那里获取请求,然后处理,并且把响应发送给监听者,然后由监听者发送回给客户端。
为了使得IIS 6的性能和可伸缩性最大,Microsoft将HTTP的监听者放在了操作系统的内核模式中,同时Microsoft也重写了请求处理程序,使得所有的应用程序有着更好的独立性,并且也加入了很多配置和特性,使得性能和稳定性有了大幅度的提升。
首先我们就来讲讲“内核模式”与“用户模式”的一些概念,因为后面的文章会大量的用到这些概念。
所谓的内核模式,就是Windows内部核心的操作,在内核模式中运行的进程有着很高的优先级,可以直接访问硬件以及系统底层的一些数据例如管理线程,进程,管理I/O设备的驱动等。
对于不同的Web应用程序,其性能,稳定性等都是不一样的,所以正确的配置会对站点的影响非常大(其实很多的时候,我们采用了很多的默认的配置)。
当响应产生之后,响应会被再次发送给HTTP.sys(大家可以看到图中第5个步骤),然后再把响应发送给客户端。HTTP.sys可以基于一些配置将响应进行缓存,我们会在后面进一步的讨论。
这里有一点非常中的就是:HTTP.sys将响应缓存在内核中,并且这个内核中的这个缓存空间是不分页的。
不分页就意味着HTTP.sys总是将响应的内容缓存物理的内存中,而且这一块内存不会被交换出去,就是说不会被分页到磁盘上面(这部分的内容已经涉及到了Windows的内存管理知识)。
当请求的响应被缓存在了内核模式之后,下次再次请求的时候,可以直接的读取缓存,而后续的步骤全部跳过,这会极大的提升性能。
作者介绍:汪洋,哪合伙CEO,曾大汉电子商务有限公司首席技术官,副总裁,负责公司产品、技术、运营,参与商业模式设计。华康移动医疗前CTO,副总裁,首席架构师。微软MVP
赞赏
人赞赏
构建高性能.NET应用之配置高可用IIS服务器-第一篇:IIS必须掌握的知识相关推荐
- 构建高性能.NET应用之配置高可用IIS服务器-第四篇 IIS常见问题之:工作进程回收机制(上)
通过三篇文章的普及,相信大家对IIS应该有了一个基本的了解.那么从本篇文章开始,我们就开始进入IIS一些比较实际的话题:如何配置IIS,使得其性能尽可能的高. 我们在本篇中主要讲述的就是"工 ...
- 构建高性能.NET应用之配置高可用IIS服务器-第三篇 IIS中三个核心组件的讲解(上)
今天的文章的比较的容易,主要讲述IIS中三个比较重要的组件:协议监听者(Protocol Listeners),WWW服务(World Wide Web Publishing Service)和WAS ...
- 构建高性能.NET应用之配置高可用IIS服务器-第二篇 IIS请求处理模型
在IIS 中,Http监听者(http.sys)和请求处理者由两个系统服务在控制着.一个是WWW 服务,另外一个就是Windows Process Activation. 对于WWW服务,它主要是监控 ...
- 构建高性能.NET应用之配置高可用IIS服务器-第五篇 IIS常见问题之:工作进程回收机制(中)...
我们在本篇中接着讲述"工作进程回收机制". 本篇文章的议题如下: 工作进程回收机制讲解 基于时间的回收机制 基于请求数的 ...
- 构建高性能.NET应用之配高可用IIS服务器-第五篇 IIS常见问题之:工作进程回收机制(中)
我们在本篇中接着讲述"工作进程回收机制". 本篇文章的议题如下: 工作进程回收机制讲解 基于时间的回收机制 基于请求数的回收机制 ...
- 服务器集群之keepalived配置高可用(资料)
2019独角兽企业重金招聘Python工程师标准>>> Linux集群概述 • 根据功能划分为两大类:高可用和负载均衡 • 高可用集群通常为两台服务器,一台工作,另外一台作为冗余,当 ...
- 《构建高可用Linux服务器》互动网首发
书名:构建高可用Linux服务器 ISBN:9787111359423 作者:余洪春 定价:79.00元 出版时间:2011年10月 出版社:机械工业出版社 订书页面 编辑推荐: 基于实际生产环境,从 ...
- 《构建高可用Linux服务器 第3版》—— 1.4 Linux服务器的日志管理
本节书摘来自华章出版社<构建高可用Linux服务器 第3版>一 书中的第1章,第1.4节,作者:余洪春 ,更多章节内容可以访问云栖社区"华章计算机"公众号查看. 1.4 ...
- 《构建高可用Linux服务器》第一版勘误表(附脚本下载)
<构建高可用Linux服务器>因为印刷或自己检查不仔细的原因还是有许多错误的,这个在第二次印刷时会统一改正(脚本下载地址为 http://www.hzbook.com/Books/6021 ...
最新文章
- js中的异常处理try...catch使用介绍
- 十个有用的linux命令行技巧
- JSON.NET 简单的使用
- linux ubantu扩展空间,ubuntu 扩展存储空间
- IIS Log的位置
- Kotlin 循环控制(七)
- Python Tricks(二十一)—— 排列组合的计算
- 淘宝潜规折射出的人性
- 如何下载收费歌曲(不用任何软件插件,安全无毒)
- Python - 面向对象编程 - 公共属性、保护属性、私有属性
- 【PTA】【Python】【拼题A 2022 跨年挑战赛】投票
- .NET下使用snappy
- Graphql 初体验 第十一章 | #13 Hitting the API(实现了登录注册表单)
- cadence 旋转快捷键_CADENCE快捷键归纳
- arcgis for js 画圆圈(会跟地图一起缩小),而不是打点然后加半径的圆点(不会缩小),制作打卡功能选点。可以点击地图自动画圆圈
- Python爬虫可以爬取什么呢?
- 实验 6 文件打包与解压缩
- cmd操作MySQL 多表查询(日记 day 4)
- 打开电脑任务管理器的方法
- Hibernate查询性能优化技巧