VS.NET(C#)提升-1.10_设置IIS最大并发连接数与队列

版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/msh2016/article/details/79452734

工作线程数

工作线程可以通过Machine.config的maxWorkerThreads修改

一个工作进程有默认的工作线程数量(工作线程可以通过Machine.config的maxWorkerThreads修改,并跟CPU是几核有关系),我们可以通过设置应用程序池的最大工作进程为2,那这样就成了web园。相应的工作线程也随工作进程的增加也加倍,但是要考虑cpu和内存的会不会消耗过大。web园是直接的表现就是通过任务管理器里可以看到两个w3pw.exe进程。

参考:https://msdn.microsoft.com/zh-cn/library/7w2sway1.aspx

队列长度

除了IIS工作线程数可以第一时间进行处理外,其余的请求可以进入等待队列进行等待的数量。比如:

工作线程数 = 100

队列长度 = 5000

那么一万个连接请求同时涌过来,将有100个第一时间被处理,5000个等待,4900个以503返回。

这个可以在应用程序池-->ASP.NETv4.0 Classic-->高级设置-->队列长度里修改

最大并发连接数

工作线程数 = 100

队列长度 = 5000

最大并发连接数 =5000

那么一万个连接请求同时涌过来,将有100个第一时间被处理,4900个进入队列等待,5000个以503返回。

假如最大并发连接数=10000,则

那么一万个连接请求同时涌过来,将有100个第一时间被处理,5000个进入队列等待,4900个以503返回。

这个可以在IIS-->网站(要修改的网站)-->高级设置-->最大并发连接数里修改。

案例

将【最大并发连接数】设置为100,队列1000,而我们的win7系统的IIS最大并发工作线程数只有10,1万个请求同时到来,会有什么效果呢?

        这时只有100个请求会收到正常响应:10个用户正常显示网页,进入排队等待的只有90个请求(90个用户浏览器显示“加载中……”);剩余9900个请求直接返回503(服务不可用)的错误。

IIS会根据【最大并发连接数】来判断是否有多余的请求,多余的请求直接返回503,然后再根据【队列长度】来判断是否有多余的请求排不了队,排不了队的也直接返回503。所以,如何设置【最大并发连接数】和【队列长度】,实际上是有公式可以计算的:

        最大并发连接数 = 队列长度 + IIS最大并发工作线程数

 PS:随着春天脚步的到来,每周新入职员工达600多人,用户很快超1.5K,IIS的压力也随之增大!


展开阅读全文

没有更多推荐了,返回首页