日期:2014-05-18  浏览次数:20527 次

IIS中最大并发连接数与应用程序池的队列长度的关系
我测试了下,不管队列如何设(设大或设小),只有和只要超出最大并发连接数时,才(就)出现503
有了解原因的高手

------解决方案--------------------
参考:
http://ilewen.com/questions/6046
------解决方案--------------------
让Windows Server 2008 + IIS 7+ ASP.NET 支持10万个同时请求
------解决方案--------------------
让Windows Server 2008 + IIS 7+ ASP.NET 支持10万个同时请求
------解决方案--------------------
最大并发连接数与应用程序池的队列长度应该有关系吗?
最大并发连接数 是连接数
程序池的队列长度 是Request.
------解决方案--------------------
一个是并发数,一个是等待数。
等待数跟超时时间有关系,跟并发数关系不是很密切。
------解决方案--------------------
Queue是那个访问了还没处理完的数量
并发是同时进来的数量限制。

关系不是很大。

如果你每进来一个访问,就sleep住,这时候会增加Queue的数量的。
------解决方案--------------------
探讨


最大并发连接数难道不是同时允许的Request数

------解决方案--------------------
唉 你们说的俺都不懂 顶帖……
------解决方案--------------------
探讨

引用:

有道理,但是我实测的时候,并发数设为:20,队列长度设为:10
将每一个访问都sleep住,你猜怎么样,直道21个才503
这是怎么回事呢

------解决方案--------------------
探讨

引用:
不好意思,我的系统是英文的,没对应上。我用英文名称写这里吧。
那个Queue Length是在Application Pool里面设置的吧?,应该就是你说的队列长度了,这个值是对应Application Pool能够同时处理的任务队列最大值。是针对w3wp进程说的(相当于,这个进程能开n个Thread来处理请求)

那个Maximum Concurrent C……

------解决方案--------------------
探讨

管理器中的这个说明让我有些迷惑:
[queueLength] HTTP.sys 将针对应用程序池排队的最大请求数.如果队列已满,新请求将收到503 "服务不可用"的响应

------解决方案--------------------
应用程序池队列长度调到最大,顶。

------解决方案--------------------
探讨

引用:
最大的超出部分的数量是 Maximum Concurrent connection 减去 Queue Length
不过还是有点疑问:说是超出这个队列长度会返回503,而我们现在的理解是在资源不是问题的情况下,它可以无限制的等待,不存在超出问题
看来我们的理解还是有些问题的

------解决方案--------------------
探讨

引用:

引用:
最大的超出部分的数量是 Maximum Concurrent connection 减去 Queue Length
不过还是有点疑问:说是超出这个队列长度会返回503,而我们现在的理解是在资源不是问题的情况下,它可以无限制的等待,不存在超出问题
看来我们的理解还是有些问题的

超出后请求不到Application pool资……

------解决方案--------------------
我觉得Queue和线程没有关系
这是帮助里对于Request queue limit的解释
Request queue limit

Select to configure IIS to monitor the number of requests for a designated application pool queue before queuing a new request. 
Application pool queue length limits prevent large numbers of requests from queuing up and overloading your server. If adding the new request to the queue exceeds the capacity of the queue, the server rejects the request and sends a non-customizable 503-error response to the client.


假如如果有10个连接,每个连接得客户端不停的发request. 但是服务器处理request需要花点时间,服务器就会把处理不过来的request放到Queue里面。因此,如果发request的速度比处理request的速度快很多的话,即使Request queue limit很大也会发生503错误的。