Apache uitermate instabiel i.c.m. Tomcat

Pagina: 1
Acties:

  • Oinki
  • Registratie: Juni 2001
  • Laatst online: 11-10-2012
Hallo iedereen,

Ik heb een probleem met een 2-tal webservers waar apache op draait in combinatie met Tomcat:
Configuratie:
OS: Win2k SP4
Apache: 2.0.49/mod_jk2/2.0.4 (meerdere virtual hosts)
Tomcat: 4.1.30
JDK: 1.4.2_04

Er draaien 2 Tomcat instances op die aan loadbalancing doen: Dat staat als volgt ingesteld via de worker2.properties file:

[shm]
file=c:/HTTPServers/Tomcat_4.1/logs/shm.file
size=1048576

[lb:balancer]
recovery=30
timeout=5000

#Define the channel sockets
[channel.socket:localhost:11009]
port=11009
host=localhost
timeout=20000
tomcatId=lefthand1
lb_factor=1

[channel.socket:localhost:12009]
port=12009
host=localhost
timeout=20000
tomcatId=lefthand2
lb_factor=1

# define the workers
[status:status]

[ajp13:localhost:11009]
channel=channel.socket:localhost:11009
route=lefthand
group=balancer

[ajp13:localhost:12009]
channel=channel.socket:localhost:12009
route=lefthand2
group=balancer

# Uri mapping

[uri:/*.jsp]
group=balancer

[uri:/jkstatus/*]
worker=status:status

De JVM waar de Tomcat instances in draaien hebben de volgende memory instellingen:
-Xms1024M
-Xss128k
-Xmx1024
Deze waarden zijn dermate hoog omdat er in het verleden outofmemory errors verschenen in de tomcat logs waarna Tomcat down ging (stopte met afhandelen van JSP pagina's)

Op het moment dat Apache begint te spoken neemt het CPU gebruik toe tot 99% en stopt hij daadwerkelijk met loggen van info in het errorlog. Tomcat die gaat op dat moment over tot de volgende foutmelding:

Compile failed; see the compiler error output for details.
at org.apache.tools.ant.taskdefs.Javac.compile(Javac.java:842)
at org.apache.tools.ant.taskdefs.Javac.execute(Javac.java:682)
at org.apache.jasper.compiler.Compiler.generateClass(Compiler.java:317)
at org.apache.jasper.compiler.Compiler.compile(Compiler.java:370)
at org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:473)
at org.apache.jasper.compiler.JspRuntimeContext.checkCompile(JspRuntimeContext.java:314)
at org.apache.jasper.compiler.JspRuntimeContext.run(JspRuntimeContext.java:528)
at java.lang.Thread.run(Thread.java:534)

Ik heb op een bepaald moment een van de webservers gebruikt om met Jmeter de load na te bootsen m.b.v. de Tomcat acces logs. Hier heeft hij geen problemen met maar op het moment dat er weer "live" load op komt gaat het na ongeveer 24 weer mis.

Heeft iemand dit eerder gezien of ooit wat over gelezen. Ik heb op dit moment nog niets kunnen vinden met Google wat een oplossing bood.

Verwijderd

Move PNS > SA

  • Olaf van der Spek
  • Registratie: September 2000
  • Niet online
Is het niet handig om eerst alle software te upgraden naar de laatste stable versies?

  • Oinki
  • Registratie: Juni 2001
  • Laatst online: 11-10-2012
OlafvdSpek schreef op woensdag 15 december 2004 @ 13:37:
Is het niet handig om eerst alle software te upgraden naar de laatste stable versies?
Er is redelijk recent gekozen voor deze versies omdat ze in ieder geval stabiel en redelijk
uitgekristaliseerd horen te zijn.

Tomcat 5 had wat issues met de jsp bestanden als ik het me goed herinner. We hebben het hier echter over live servers die een behoorlijke load per dag afhandelen dus ff upgraden zit er ook niet in. Daar gaat echt een maandenlang upgrade traject voor nodig zijn en biedt eigenlijk nog geen garantie dat het daarna wel werkt.

Het gekke is dat ze een hele tijd stabiel hebben gedraaid (2 maanden) Op een bepaald moment zijn er ook extra jar files toegevoegd en een weekje daarna ging het mis. Er heeft een collega van ons naar de java bestanden gekeken maar kon geen vreemde dingen vinden die een dergelijke crash zouden veroorzaken.

  • Olaf van der Spek
  • Registratie: September 2000
  • Niet online
Oinki schreef op woensdag 15 december 2004 @ 14:22:
Er is redelijk recent gekozen voor deze versies omdat ze in ieder geval stabiel en redelijk
uitgekristaliseerd horen te zijn.
Ah. Maar zelfs een minor versie upgrade is geen optie? Meestal zijn er weinig functionele veranderingen en alleen bug fixes. Van Apache 2.0.49 naar 2.0.52 bijvoorbeeld.

> Compile failed; see the compiler error output for details.

Wat staat er in de compiler error output?
En wat doet het geheugen gebruik van de machine op het moment dat het fout gaat?

  • Oinki
  • Registratie: Juni 2001
  • Laatst online: 11-10-2012
Van upgraden wil men op dit moment niets weten. Zaak is dat de oorzaak boven water komt.
Het zou eventueel ook in de code van de webpagina's kunnen liggen maar ook dat is niet zeker.

Compiler logs melden niet bijster veel. Sterker nog die melden helemaal niets.
Ik zit nog even te twijfelen waar ik hun logging level kan aanpassen.

Memory is ruimschoots beschikbaar. Apache eist dan alleen 99% CPU tijd op en blijft de handle count van apache continue op 1 waarde, overigens niet de hoogste die ik tevoorschijn heb kunnen halen.

Op het moment dat Apache herstart wordt pakken de Tomcats hun taken ook weer normaal op.
Er is af en toe wel wat vreemds aan de hand met Tomcat waarvan we de pagina's verdenken. Af en toe stopt een van de webapps met functioneren en krijgt men een http error 404.

Ik heb eerder gezien dat een bepaalde pagina ook een op datum gesorteerde lijst compleet om zeep hielp, dat was wel een fout in de pagina.

De content staat overigens in een aparte MS-SQL database (apart als in een andere server)

Onderstaand is trouwens een melding die ook zeer regelmatig in de Tomcat errorlogs opduikt:
Dec 14, 2004 6:42:15 AM org.apache.jk.common.ChannelSocket processConnection
INFO: connection timeout reached
Dec 14, 2004 6:43:09 AM org.apache.jk.common.ChannelSocket processConnection
INFO: connection timeout reached

Dit is als we het goed begrepen hebben niet echt schadelijk maar misschien wel de moeite van vermelden waard.
Pagina: 1