You are viewing a plain text version of this content. The canonical link for it is here.
Posted to general@jakarta.apache.org by ba...@mssm.edu on 2000/10/04 03:53:48 UTC

huge performance hit when separating apache and jserv

I have JServ 1.1.2 and Apache 1.3.12 on three machines, connected by 
switched fast ethernet (which also connects them to the clients).  

Individually, all work flawlessly and with great performance.  

When I access a load balanced servlet (which is what I want to use the 
three machines for), or indeed access any servlet mount point that 
connects to a remote host, a VERY significant delay appears in the 
return of the servlet response.  

I've been watching the logs generated by my servlet, and they process 
the requests promptly and finish in the same amount of time regardless 
of what web server is connecting to JServ.  

When the web server and JServ are on different machines, the browsers 
seem to get the responses with a typical delay of a few seconds, and 
sometimes almost MINUTES.  The delay occurs after the servlet is 
finished, and sometimes in mid transfer of its response!  This 
phenomenon does not occur when apache and jserv are on the same machine, 
in which case the responses are always snappy. 

Since the machines aren't identical, I've also tried a couple of 
different configurations without any luck.  The system behaves in the 
same fashion regardless of which machine is the web server and which run 
JServ.  


So my questions are:

Has anyone else seen (and better yet, solved) this problem? 

Does anyone have some insight or suggestions on how to I could go about 
figuring out what's going wrong?

Does mod_jk and Tomcat implement load balancing yet, and can I expect 
them to behave any different?


Thanks in advance,

Barnabas





Re: huge performance hit when separating apache and jserv

Posted by Gunnar R|nning <gu...@candleweb.no>.
barnabas.wolf@mssm.edu writes:

> Has anyone else seen (and better yet, solved) this problem? 

I've seen it, but I didn't have the time to solve the problem. We just did
load balancing on web server level using Cisco LocalDirector instead.

Regards, 

	Gunnar

Re: huge performance hit when separating apache and jserv

Posted by Sheryl Martin <sh...@mediaone.net>.
I'm fairly new to Tomcat, I've been evaluating it at home for the past few
days for use as a successor to SUN's Java Webserver.  However, at work
we've solved many performance problems similar to this in the past in a
similar architecture.

If I understand you correctly, you have 1 webserver/jserv box farming out
requests
locally and to 2 other jserv only servers.  It might be a bad assumption,
but I'm assuming
that you're running on a Linux box.

1. Trace. You might use strace on the webservers and jserv servers to see
what each application
is doing at a system level.  It might give you some clues.

2. Figure out if other misconfigured services could be causing the problem.
Are these
servers NFS mounting anything? (Especially class directories and such, the
loader might
have a delay when checking timestamps to see if the class needs to be
reloaded -
if this is the case, I believe I've seen configuration options to turn
reloading off).

3. Ask yourself if delays have any discernable pattern.  For instance if
first time startup
takes forever, after that it runs faster" might indicate that the reading of
class files and
jsp compilations might be affecting performance somehow.

4. Profile. Failing that, you could also profile the servlet via one of the
many tools available.

5. Snoop. You also might snoop traffic between the servers, using something
like ethereal
to view server to server dialogs with timestamps to point out the largest
delays.

If all that fails, you might consider moving the responsibility of load
balancing to another
component and configuring 3 distinct apache/jserv servers.  For Linux, there
are a
few possibilities out there.  VALinux has UltraMonkey or Squid might fit the
ticket.

Hope this helps...

- Pat

barnabas.wolf@mssm.edu wrote:

> I have JServ 1.1.2 and Apache 1.3.12 on three machines, connected by
> switched fast ethernet (which also connects them to the clients).
>
> Individually, all work flawlessly and with great performance.
>
> When I access a load balanced servlet (which is what I want to use the
> three machines for), or indeed access any servlet mount point that
> connects to a remote host, a VERY significant delay appears in the
> return of the servlet response.
>
> I've been watching the logs generated by my servlet, and they process
> the requests promptly and finish in the same amount of time regardless
> of what web server is connecting to JServ.
>
> When the web server and JServ are on different machines, the browsers
> seem to get the responses with a typical delay of a few seconds, and
> sometimes almost MINUTES.  The delay occurs after the servlet is
> finished, and sometimes in mid transfer of its response!  This
> phenomenon does not occur when apache and jserv are on the same machine,
> in which case the responses are always snappy.
>
> Since the machines aren't identical, I've also tried a couple of
> different configurations without any luck.  The system behaves in the
> same fashion regardless of which machine is the web server and which run
> JServ.
>
> So my questions are:
>
> Has anyone else seen (and better yet, solved) this problem?
>
> Does anyone have some insight or suggestions on how to I could go about
> figuring out what's going wrong?
>
> Does mod_jk and Tomcat implement load balancing yet, and can I expect
> them to behave any different?
>
> Thanks in advance,
>
> Barnabas
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: general-unsubscribe@jakarta.apache.org
> For additional commands, e-mail: general-help@jakarta.apache.org