Hi Nick, We currently have 8 tomcat nodes with each node configured to have 1000 maxThreads. We did a round of performance test for 8000 concurrent users and the observation was that the number of active executor threads were far less.
My understanding was if 8000 concurrent users hit the site at the same time, 8000 executor threads are required to suffice the requirement of all the requests. However, I see far less executor threads in action when we put a load of 8000 concurrent users. Regards, Saurabh Agrawal Manager Technology | Sapient -----Original Message----- From: Nick Williams [mailto:nicho...@nicholaswilliams.net] Sent: Wednesday, March 20, 2013 1:44 AM To: Tomcat Users List Subject: Re: Tomcat Behavior on Multiple HTTP requests from same browser On Mar 19, 2013, at 8:37 PM, Caldarale, Charles R wrote: >> From: Saurabh Agrawal [mailto:sagra...@sapient.com] >> Subject: Tomcat Behavior on Multiple HTTP requests from same browser > >> Let's say I hit http://localhost:9001/homepage.html. Upon hitting the URL, >> tomcat will assign one of the worker threads (say Thread 1) from the pool >> to the HTTP request which will be processed and then response will be sent >> to the client. Now if I hit a link on homepage which is for login, a separate >> HTTP request will be initiated from the same browser. > >> What I want to understand is if the Tomcat will keep Thread 1 as persistent >> thread to server the second request (for login) from the same browser or will >> it assign a separate thread from the pool ? > > Normally, the first available thread from the pool is used for each request. > However, if you are using the BIO <Connector> with keep-alives enable *and* > the browser is using keep-alives, the same thread as long as the HTTP > connection is active. > > See the HTTP <Connector> doc, especially the Connector Comparison at the end. > > http://tomcat.apache.org/tomcat-7.0-doc/config/http.html > > - Chuck I think the most important thing to say here is that there is NO guarantee that the browser will always keep the connection alive, therefore there is NO guarantee that every request will get the same thread. You should never rely on having access to the same thread from one request to the next. (That is what HttpSessions are for.) If you need to support 20,000 simultaneous users, you are going to need a farm of servers. Just one server will not be enough. One simultaneous user does not equal one thread needed: when a user is between requests, a thread can be servicing some other request. You should read the Tomcat documentation thoroughly, especial the sections on connection management, session management and clustering. Nick --------------------------------------------------------------------- To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org For additional commands, e-mail: users-h...@tomcat.apache.org --------------------------------------------------------------------- To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org For additional commands, e-mail: users-h...@tomcat.apache.org