tomcat-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From GOMEZ Henri <hgo...@slib.fr>
Subject RE: mod_jk / Ajp13 config fix on heavily loaded system
Date Thu, 15 Nov 2001 09:36:20 GMT
>We are currently experiencing heavy load using ajpv13.

Good a system which could reproduce the problem.

>We had set those parameters as Henri specified as 100, 50 and 
>20 and still 
>she died.

Try to replace it with -1, which will make you have unlimited
number of threads :

<Ajp13Connector port="8009"
	maxThreads="-1"
	maxSpareThreads="50"
	minSpareThreads="10" />

>We went back to 12 and experienced same problems.

So the problem is more on Tomcat than in connector land.
You're using Tomcat 3.2.2, could you retry with Tomcat 3.3
which solve many stability problem and it still 
SERVLET 2.2/JSP 1.1.

>My questions are:
>1) Like apache has the built-in monitor (server-status)  where you can 
>watch the states of open threads to the web server, does tomcat offer 
>anything like that?

?

>2) how do you insert time/date in mod_jk.log as Henri's 
>snippet includes? I 
>have tried
>JkLogStampFormat "[%a %b %d %H:%M:%S %Y] "

>but apache complains
>"Syntax error on line 295:
>Invalid command 'JkLogStampFormat', perhaps mis-spelled or 
>defined by a 
>module not included in the server configuration
>./apachectl startssl: httpd could not be started"

You need to have a recent mod_jk, for example the one from
Tomcat 3.3 which include it and SOLVE many others problems. 
mod_jk from TC 3.2 is really old, and won't works with Tomcat 3.3.

Solution, upgrade to TC 3.3 and it's mod_jk, and tell us more
for your Ajp13 problems (which may be fixed)

>3) How do I determine what version of mod_jk.so I am using? My 
>system was 
>built for us by our systems group.
>Here is the file size:
>-rwxr-xr-x   1 root     systems   141624 Feb 05 2001  mod_jk.so

No easy way since up to TC 3.3 mod_jk (and now the one from jtc)
there were no version number compiled in module.
Now mod_jk for TC 3.3 is 1.1.0 (and reported in error.log of httpd
server), and mod_jk for JTC is 1.2.0

Regards

>Using jdk 1.3.0 under AIX
>Apache 1.3.14
>Tomcat 3.2.2
>ajpv13
>
>
>At 10:04 AM 11/14/2001 -0800, Travis Schmid wrote:
>
>
>> > -----Original Message-----
>> > From: Schulz, Sebastian, fiscus GmbH, Bonn
>> > [mailto:Sebastian.Schulz@BONN.FISCUS.DE]
>> > Sent: Wednesday, November 14, 2001 1:19 AM
>> > To: 'tomcat-user@jakarta.apache.org'
>> > Subject: AW: mod_jk / Ajp13 config fix on heavily loaded system
>> >
>> >
>> > what's about loadbalancing?
>> >
>> > say, we have defined local loadbalancing using
>> > 5 ajp13-worker at workers.properties, and we
>> > have at server.xml:
>> > <Ajp13Connector port="8009"
>> >                          maxThreads="100"
>> >                          maxSpareThreads="50"
>> >                          minSpareThreads="10" />
>> >
>> > Does this mean, we can support through the
>> > loadbalancer 100 threads or 500 threads
>> > (100 * number of workers(5) = 500)?
>> >
>>500 threads total.  100 per worker/Tomcat
>>
>> > b.t.w, another question:
>> > when using local loadbalancing, does every
>> > worker has its own VM or are they sharing
>> > all the same VM?
>> >
>>
>>I had this question myself.  I think I have it figured out 
>now but feel free
>>to correct me anyone that understands this better.
>>The workers are threads/groups of threads that are running 
>within the web
>>servers memory space.  They seem to be threads communicating 
>on a particular
>>port with an open socket to a Tomcat instance.  Each separate Tomcat
>>instance has its own VM and is listening on a different port 
>number/host
>>combination.  I don't think the workers actually do much 
>work.  They just
>>take the information they are given, transmit it to the 
>Tomcat instance, and
>>hand the reply information from Tomcat back to the web 
>server.  All the real
>>work is done within the Tomcat instances (each of which can 
>have their own
>>VM).
>>
>>Travis
>>
>> > thank you,
>> > sebastian
>> >
>> > -----Urspr√ľngliche Nachricht-----
>> > Von: GOMEZ Henri [mailto:hgomez@slib.fr]
>> > Gesendet: Dienstag, 13. November 2001 23:45
>> > An: Tomcat Developers List
>> > Cc: tomcat-user@jakarta.apache.org
>> > Betreff: mod_jk / Ajp13 config fix on heavily loaded system
>> >
>> >
>> > Hi to all,
>> >
>> > Some of you may have experienced problems on heavily
>> > loaded system with mod_jk and Tomcat 3.2/3.3 when using
>> > ajp13.
>> >
>> > As you may know, the Ajp13 connection is permanent
>> > and is created each time a WebServer task, for
>> > example an Apache child, have to forward a request
>> > to Tomcat.
>> >
>> > And in Apache server case, the child will stay alive,
>> > until the client requests load decrease, or when
>> > a child have passed 1000 requests (MaxRequestsPerChild 1000).
>> > And till the child close the connection, the Tomcat thread
>> > stay alive.
>> >
>> > By default Apache server support up to 150 childs :
>> > (MaxClients 150 in httpd.conf)
>> >
>> > But by default, the Ajp13 Interceptor won't use more
>> > than 100 threads, so you're stuck when the 101th Apache
>> > child want to forward a request and see the following
>> > infamous trace in mod_jk.log :
>> >
>> > [wed oct 31 11:03:21 2001]  [jk_ajp13_worker.c (196)]: In
>> > jk_endpoint_t::connect_to_tomcat, failed errno = 111
>> > [wed oct 31 11:03:21 2001]  [jk_ajp13_worker.c (635)]: Error
>> > connecting
>> > to the Tomcat process.
>> > [wed oct 31 11:03:21 2001]  [jk_ajp13_worker.c (848)]: In
>> > jk_endpoint_t::service, send_request failed in send loop 2
>> > [wed oct 31 11:03:21 2001]  [jk_ajp13_worker.c (228)]:
>> > connection_tcp_get_message: Error - jk_tcp_socket_recvfull failed
>> > [wed oct 31 11:03:21 2001]  [jk_ajp13_worker.c (712)]: 
>Error reading
>> > reply
>> > [wed oct 31 11:03:21 2001]  [jk_ajp13_worker.c (845)]: In
>> > jk_endpoint_t::service, get_reply failed in send loop 0
>> > [wed oct 31 11:03:21 2001]  [jk_connect.c (143)]: jk_open_socket,
>> > connect() failed errno = 111
>> > [wed oct 31 11:03:21 2001]  [jk_ajp13_worker.c (196)]: In
>> > jk_endpoint_t::connect_to_tomcat, failed errno = 111
>> > [wed oct 31 11:03:21 2001]  [jk_ajp13_worker.c (635)]: Error
>> > connecting
>> > to the Tomcat process.
>> >
>> > In some case, Apache could be able to connect, since 
>Tomcat listening
>> > thread will accept incoming connection, but will drop it 
>later if it
>> > fail to give the socket to a new thread. In that case you'll see
>> > only in log :
>> >
>> > [wed oct 31 11:03:21 2001]  [jk_ajp13_worker.c (848)]: In
>> > jk_endpoint_t::service, send_request failed in send loop 2
>> > [wed oct 31 11:03:21 2001]  [jk_ajp13_worker.c (228)]:
>> > connection_tcp_get_message: Error - jk_tcp_socket_recvfull failed
>> > [wed oct 31 11:03:21 2001]  [jk_ajp13_worker.c (712)]: 
>Error reading
>> > reply
>> >
>> > Fortunatly, the fix is easy, just configure Ajp13Connector in
>> > server.xml to support up to 150 threads (or whatever you define
>> > as MaxClients in Apache, didn't know how on IIS/iPlanet).
>> >
>> >         <Ajp13Connector port="8009"
>> >                          maxThreads="150"
>> >                          maxSpareThreads="50"
>> >                          minSpareThreads="10" />
>> >
>> > Also you should take care of the number of descriptors
>> > opened in your webapplication, which is :
>> >
>> >   Tomcat used descriptors (sockets, files)
>> > + YouWebApp descriptors (files, sockets, jdbc...)
>> >
>> > The JVM, like any others process have a limit on the number
>> > of descriptors it could open (and of course on number of threads).
>> >
>> > So take care of closing no more used socket, files and so on.
>> >
>> >
>> > -
>> > Henri Gomez                 ___[_]____
>> > EMAIL : hgomez@slib.fr        (. .)
>> > PGP KEY : 697ECEDD    ...oOOo..(_)..oOOo...
>> > PGP Fingerprint : 9DF8 1EA8 ED53 2F39 DC9B 904A 364F 80E6
>> >
>> > --
>> > To unsubscribe, e-mail:
>> > <mailto:tomcat-dev-unsubscribe@jakarta.apache.org>
>> > For additional commands, e-mail:
>> > <mailto:tomcat-dev-help@jakarta.apache.org>
>> >
>> > --
>> > To unsubscribe:   
><mailto:tomcat-user-unsubscribe@jakarta.apache.org>
>> > For 
>additional commands: <mailto:tomcat-user-help@jakarta.apache.org>
>> > Troubles with the list: 
><mailto:tomcat-user-owner@jakarta.apache.org>
>> >
>>
>>--
>>To 
>unsubscribe:   <mailto:tomcat-user-unsubscribe@jakarta.apache.org>
>>For additional commands: <mailto:tomcat-user-help@jakarta.apache.org>
>>Troubles with the list: <mailto:tomcat-user-owner@jakarta.apache.org>
>
>========================================================
>Maureen Fisher, CIT/ID, Cornell University
>Ithaca, NY 14850
>mf12@cornell.edu
>http://mo.cit.cornell.edu/
>
>Treat people as if they were what they ought to be and you help them
>to become what they are capable of being.
>--Johann Wolfgang von Goethe
>
>
>--
>To unsubscribe:   <mailto:tomcat-user-unsubscribe@jakarta.apache.org>
>For additional commands: <mailto:tomcat-user-help@jakarta.apache.org>
>Troubles with the list: <mailto:tomcat-user-owner@jakarta.apache.org>
>

--
To unsubscribe:   <mailto:tomcat-user-unsubscribe@jakarta.apache.org>
For additional commands: <mailto:tomcat-user-help@jakarta.apache.org>
Troubles with the list: <mailto:tomcat-user-owner@jakarta.apache.org>


Mime
View raw message