You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@tomcat.apache.org by Allistair Crossley <Al...@QAS.com> on 2005/07/13 10:28:42 UTC

RE: Perf Issue: HttpClient.executeMethod takes more time if there are more number of threads in the process

Hi,

Tomcat's max threads by default is usually around 75. I you fire 10 at it then they all get serviced immediately. 

If you send 1000, all 75 get taken up, meaning a queue forms for the 1000-75 remaining threads until Tomcat has spare threads for them. 

Allistair

> -----Original Message-----
> From: Bhaskar [mailto:bhaskar@yahoo-inc.com]
> Sent: 13 July 2005 09:26
> To: Tomcat Users List
> Subject: Re: Perf Issue: HttpClient.executeMethod takes more time if
> there are more number of threads in the process
> 
> 
> In my testbox, both of the following processes are running 
> simultaniously:
> 
> java testprocess 1: 1000 threads  (avg time to execute the 
> executeMethod:1723.61 ms)
> java testprocess 2: 10 threads (avg resp time to execute the 
> executeMethod: 32 ms)
> 
> If it is to do with max processor attribute of Tomcat server 
> side then 
> how come I am seeing good response with another test java 
> process which 
> had less number of threads ?
> 
> More over in tomcat, I am seeing the average response time as 
> 12 to 20 
> ms. If there is a problem in tomcat side, then i might have seen huge 
> numbers here.
> 
> Bhaskar
> 
> 
> Allistair Crossley wrote:
> 
> >Complete stab in the dark here ... Tomcat serves a maximum 
> number of threads at a time (request processing threads). It 
> may be that Tomcat's timings are accurate for the threads 
> *when* it executes them, but your HTTP Client will be seeing 
> a queue when Tomcat has no spare request thread capacity. You 
> can tweak this with the max processors attribute for Tomcat's 
> connectors.
> >
> >Just a guess, take with pinch of salt.
> >
> >Allistair
> >
> >  
> >
> >>-----Original Message-----
> >>From: Bhaskar [mailto:bhaskar@yahoo-inc.com]
> >>Sent: 13 July 2005 08:09
> >>To: Tomcat Users List
> >>Subject: Perf Issue: HttpClient.executeMethod takes more 
> time if there
> >>are more number of threads in the process
> >>
> >>
> >>Hi,
> >>I am running tomcat 5.0.28 on Linux (2.6.9-5.ELsmp #1 SMP Wed Jan 5 
> >>19:29:47 EST 2005 x86_64 x86_64 x86_64 GNU/Linux).
> >>
> >>I am having another test box which runs java process with 1000 
> >>threads(each thread will send 10000 http requests to above 
> >>tomcat server 
> >>in the delay of 1 ms). This test process uses the 
> HttpCommon api's to 
> >>make use of http connection pool's keep alive capability.
> >>Each thread in the above test process will send the post 
> >>request to the 
> >>tomcat using HttpClient.excecuteMethod.
> >>
> >>If I check the avg response time in the tomcat server it is 
> somewhere 
> >>around 12 to 20 ms
> >>
> >>But in the test process, the time taken to execute the 
> >>HttpClient.executeMethod varies between 3 ms to 21855 ms  
> >>(avg: 1723.61 ms)
> >>
> >>Parallely (still above test process is running) I start same test 
> >>process from the same test box with 10 threads (each thread 
> >>will send 10 
> >>http requests to above tomcat in the delay of 1 ms). Now I 
> >>see the time 
> >>taken to execute the HttpCleint.executeMethod varies between 
> >>9ms to 146 
> >>ms (avg: 32.47 ms).
> >>
> >>The difference between first process and second process is 
> number of 
> >>threads.  I am trying to understand the reason on why 
> >>HttpClient.executeMethod is taking more time if I have more 
> number of 
> >>threads trying to send the http request?
> >>
> >>Do I need to fine tune something to make it better? Is it a 
> expected 
> >>behaviour ? if yes, any reason?
> >>Or I am doing something wrong my code ?
> >>
> >>TIA,
> >>Bhaskar
> >>
> >>
> >>PS: java version "1.4.2-02"
> >>Java(TM) 2 Runtime Environment, Standard Edition (build 
> >>Blackdown-1.4.2-02)
> >>Java HotSpot(TM) Client VM (build Blackdown-1.4.2-02, mixed mode)
> >>
> >>At some point if I check the number of established connections thru 
> >>netstat in test box, I see the following figure:
> >>
> >># netstat -a|grep tomcatserver|grep ESTABLISHED|wc -l
> >>528
> >>
> >>    
> >>
> >
> >
> ><FONT SIZE=1 FACE="VERDANA,ARIAL" COLOR=BLUE> 
> >-------------------------------------------------------
> >QAS Ltd.
> >Registered in England: No 2582055
> >Registered in Australia: No 082 851 474
> >-------------------------------------------------------
> ></FONT>
> >
> >
> >---------------------------------------------------------------------
> >To unsubscribe, e-mail: tomcat-user-unsubscribe@jakarta.apache.org
> >For additional commands, e-mail: tomcat-user-help@jakarta.apache.org
> >
> >
> >
> >
> >  
> >
> 
> 


<FONT SIZE=1 FACE="VERDANA,ARIAL" COLOR=BLUE> 
-------------------------------------------------------
QAS Ltd.
Registered in England: No 2582055
Registered in Australia: No 082 851 474
-------------------------------------------------------
</FONT>


---------------------------------------------------------------------
To unsubscribe, e-mail: tomcat-user-unsubscribe@jakarta.apache.org
For additional commands, e-mail: tomcat-user-help@jakarta.apache.org