On 27/12/2013 08:53, Mark Eggers wrote:
> On 12/27/2013 12:37 AM, Mark Thomas wrote:
>> On 27/12/2013 07:27, Mark Eggers wrote:
>>> On 12/26/2013 11:09 PM, 侯树成 wrote:
>>
>>>> 1.set tomcat connector like this:
>>>>       <Connector port="8080" protocol="HTTP/1.1"
>>>>                  connectionTimeout="20000"
>>>>                  redirectPort="8443" acceptCount="1" maxThreads="1"
>>>> minSpareThreads="1"/>
>>>>
>>>> 2. deploy a war file, which contains a servlet that will sleep 60s in
>>>> it's
>>>> doPost method
>>>>
>>>> 3. use LR or JMeter send 5 requests to the serlvet above
>>>>
>>
>>> I'm going to guess based on the Tomcat 7 documentation:
>>>
>>> request 1 gets executed and sits in your doPost for 60 seconds
>>> request 2 consumes the minSpareThread
>>> request 3 consumes the acceptCount
>>>
>>> Per documentation, connections 4 and 5 are dropped immediately.
>>
>> That is almost right except that there should not be a spare thread at
>> step 2 since maxThreads includes any spare threads.
>>
> 
> Yep, that's what I would expect as well. I was just trying to
> rationalize the third accept.
> 
> I agree, I would think that 1 would be served, 2 would wait, and 3-5
> would be dropped.

Figured it out. The OP is using BIO where maxConnections == maxThreads
by default.

Request 1 uses the one available request processing thread.

Request 2 is accepted but is blocked since the maximum number of
connections has been reached.

Request 3 uses the accept count.

Requests 4 & 5 are blocked.

It might be worth a note in the docs that the number of connections
accepted will always be maxConnections + 1 with the "+ 1" being blocked
in the acceptor thread until the number of connections drops below
maxConnections again. I'll try and add something later today.

Mark


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org
For additional commands, e-mail: users-h...@tomcat.apache.org

Reply via email to