On Thu, 2008-10-23 at 18:43 +0200, Furmaniak Christophe wrote:
> Hi,
> 
> we've developped a web application performance tool. Our product intensivly 
> uses httpclient (currently 3.1) to measure response time of these web 
> applications (single url or sequence of url to copy a human being navigation).
> 
> The main principle of our tool is to perform the same requests at a fixed 
> frequency (5 minutes most of the times) to be able to compute Service Level 
> Agreements.
> 
> We've detected some "strange" behaviours on some monitors (=sequence of url 
> request retreived with httpclient). Sometimes (1% of the executions), some 
> requests take more time (like 3 sec instead of 100ms) to be performed.
> 
> We cannot say for sure for the moment that the network elements of the 
> architecture are not concerned but let's assume first that our problems are 
> not network related (and I'm not saying that the guilty part is httpclient 
> ;], if you can help me to find the proof that it's network related, let's go!)
> 
> Logs have been added on the web server side (apache) using a %D  in the 
> LogFormat specification. The response times measured on apache side don't 
> match the ones we get using httpclient, not even closer (we see 3 seconds on 
> httpclient side, we see less that 1 ms on apache side).
> 
> We've traced the httpclient call and we've been able to detect 2 different 
> behaviours:
> 
> the first one occurs during the connection opening, inside 
> HttpConnection.open() call. I've added the "OPENED" trace that comes just 
> after the isOpen=true.
> 
> =============================
>                   isOpen = true;
>                   if (LOG.isDebugEnabled()) {
>                         LOG.debug("connection to " + host + ":" + port + " 
> OPENED");
>                   }
> =============================
> 
> our logs:
> ==============================
> [DEBUG] [22/10/08 12:38:26.250] [httpclient.HttpConnection]<7747> Open 
> connection to 160.92.110.240:443 (HttpConnection.java:717)
> [DEBUG] [22/10/08 12:38:29.246] [httpclient.HttpConnection]<7747> connection 
> to 160.92.110.240:443OPENED (HttpConnection.java:771)
> ==============================
> 
> I'm aware that there can be a lot of reason why the HttpConnection.open() 
> lasts so long, but does it exist explanation NOT related to network only 
> issues?
> 
> 
> 
> the second one occurs during the flush of the request OutputStream
> 
> ==============================
> [DEBUG] [22/10/08 14:00:26.234] [httpclient.HttpConnection]<16536> enter 
> HttpConnection.flushRequestOutputStream() (HttpConnection.java:851)
> [DEBUG] [22/10/08 14:00:29.240] [httpclient.HttpConnection]<16536> leaving 
> HttpConnection.flushRequestOutputStream() (HttpConnection.java:854)
> ==============================
> 
> my modifications are:
> ==============================
>       public void flushRequestOutputStream() throws IOException {
>             LOG.trace("enter HttpConnection.flushRequestOutputStream()");
>             assertOpen();
>             outputStream.flush();
>             LOG.trace("leaving HttpConnection.flushRequestOutputStream()");
>       }
> ==============================
> 
> what can explain such a long time to flush the request OutputStream?
> Am I wrong or does this output stream only "contains" the request built by 
> httpclient? That would mean that the web server is taking a (too) long time 
> to accept the request?
> 
> 
> some more details: we have these behaviours using different hosts for our 
> performance tool, so we can assume that these response times are not related 
> to the load of the host that is running the httpclient.
> 

Christophe,

HttpClient has no control over TCP/IP connections other than
java.net.Socket API provided by JRE. The problem can be related to the
particular JVM implementation, OS, network configuration, or all
combined.

Oleg   


> Thanks for reading :)
> 
> Christophe
> 
> ________________________________
> 
> Ce message et les pi?ces jointes sont confidentiels et r?serv?s ? l'usage 
> exclusif de ses destinataires. Il peut ?galement ?tre prot?g? par le secret 
> professionnel. Si vous recevez ce message par erreur, merci d'en avertir 
> imm?diatement l'exp?diteur et de le d?truire. L'int?grit? du message ne 
> pouvant ?tre assur?e sur Internet, la responsabilit? du groupe Atos Origin ne 
> pourra ?tre recherch?e quant au contenu de ce message. Bien que les meilleurs 
> efforts soient faits pour maintenir cette transmission exempte de tout virus, 
> l'exp?diteur ne donne aucune garantie ? cet ?gard et sa responsabilit? ne 
> saurait ?tre recherch?e pour tout dommage r?sultant d'un virus transmis.
> 
> This e-mail and the documents attached are confidential and intended solely 
> for the addressee; it may also be privileged. If you receive this e-mail in 
> error, please notify the sender immediately and destroy it. As its integrity 
> cannot be secured on the Internet, the Atos Origin group liability cannot be 
> triggered for the message content. Although the sender endeavours to maintain 
> a computer virus-free network, the sender does not warrant that this 
> transmission is virus-free and will not be liable for any damages resulting 
> from any virus transmitted.


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to