IIS服务器如何抗住高并发的客户端访问

今天被问到一个问题,如果你在阿里云上部署了一个IIS服务器,此时如果有成千上万的客户端来访问,你将如何设计?我东扯扯西谈谈,说加个线程池来处理,在加个请求队列。当时觉得说的没有问题,现在想想,服务器自己就有这些东西,我想面试官要的是如何在IIS中设置高并发,而不是说实现....因此总结了一下,收集了一些不错的资源。

ps: 每个 ASP.NET 请求都要先通过 IIS,然后再由 ASP.NET 处理程序进行最终处理。 首先IIS 接收请求,初步处理后,发送给ASP.NET(必须是一个ASP.NET请求),然后由ASP.NET进行实际处理并生成响应,之后该响应通过IIS发回给客户。在IIS上,有一些工作进程负责从队列中取出请求,并执行IIS 模块,然后再将该请求发送到ASP.NET 队列。但是,ASP.NET本身不创建任何线程,也没有处理请求的线程池,而是通过使用CLR 线程池,从中获取线程来处理请求。因此,IIS 模块调用ThreadPool.QueueUserWorkItem,将请求排入队列,供CLR 工作线程处理。我们都知道,CLR线程池是由CLR管理,并且能够自动调整(也就是说,它根据需要创建和销毁进程)。这里还要记住,创建和销毁线程是项很繁重的任务,这就是为什么CLR线程池允许使用同一个线程处理多个任务.

不过首先,我们需要分享下服务器的一般设计实现原理: 一个线程池,一个请求队列这是用来处理并发请求的,而基本的TCP套接字设计我就不说了。因此,线程池就是用来处理并发请求的,目前的主流服务器都设计的很好,我们要做的就是最大限度的发挥出来,因此,我想的是,面试官想让我回答的就是如何在IIS中设置服务器,使其发挥最大的并发能力。大概的分析完了,最后分享下自己找的资源:
http://www.cnblogs.com/kainjie/p/6419180.html
IIS 提高连接的并发数,和CPU的使用率。

http://www.cnblogs.com/cyq1162/archive/2013/05/13/3074980.html
小网站架构优化:从100并发抗到4000并发

http://www.cnblogs.com/hgamezoom/p/3082538.html
IIS处理并发请求时出现的问题及解决

https://www.cnblogs.com/lazb/articles/5337340.html
如何处理大量数据高并发大流量并发操作方案

https://www.cnblogs.com/zengjin93/p/5569556.html
如何提高服务器并发处理能力

http://blog.csdn.net/dream_ll/article/details/45217691
你真的了解:IIS连接数、IIS并发连接数、IIS最大并发工作线程数、应用程序池的队列长度、应用程序池的...

https://www.cnblogs.com/abc1234/p/5829758.html
IIS 的最大并发数

posted @ 2017-12-16 17:19  又见阿郎  阅读(1456)  评论(0编辑  收藏  举报