You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@tomcat.apache.org by pe...@kisstechnologies.co.uk on 2003/08/01 19:28:45 UTC
Problems with Tomcat in a high load environment
Hi,
we are running Tomcat 4.1.18 on Windows 2000 under JDK1.4.1_01. We are
using IIS as a web server connecting using the ISAPI JK 2 connector. We
are currently experiencing 2 seperate problems when under high load (ie >
30 requests per second):
1. A huge number of log events (~30 sets per minute) are generated in the
NT event log which show problems with the ISAPI connector. Each time
there is a problem, 7 lines are created:
Error: [jk_worker_ajp13.c (512)]: ajp13.service() Error forwarding
ajp13:localhost:8029 1 0
Error: [jk_worker_ajp13.c (416)]: ajp13.service() ajpGetReply recoverable
error 3
Error: [jk_handler_response.c (178)]: handler.response() Error sending
response
Error: [jk_service_iis.c (157)]: jk_ws_service_t::head,
ServerSupportFunction failed
Error: [jk_worker_ajp13.c (416)]: ajp13.service() ajpGetReply recoverable
error 3
Error: [jk_handler_response.c (200)]: Error ajp_process_callback - write
failed
Error: [jk_service_iis.c (247)]: jk_ws_service_t::write, WriteClient
failed
These I think lead to the eventual crash of IIS however I also suspect
that they may cause user errors though I havent actually seen any evidence
of this. Does anyone know anything about these errors or what I can do to
reduce them? Could it be a tuning of Tomcat issue?
2. The server is set up currently with -Xms512m and the same for Xmx.
This, I would have thought, was OK for this application, though of course
I could be wrong, but is in any case irrelevant to the problem as if I
increase memory to 1Gb it makes no odds.
The server will run fine for a few minutes at about 128m of memory usage.
At some (slightly random point with no obvious trigger), it will in a
matter of seconds use up all available memory, thus triggering a huge rise
in the processor usage which sits at roughly 50-60% (across 2 processors)
constantly. It is worth noting that 1 processor is not maxed out - the
load is relatively evenly distributed.
After a further while, the young generation space runs out of memory and a
process ensues of the processor load "bouncing" up to 100% and back to 60%
over and over again as it GCs, reduces the momery used to ~ 15m less than
it was, then it is used up again and so on. This obviously seriously
impacts the usage of the application. I cant see why it is doing it; this
is an ecommerce application and the loads are not that high - clearly a
leak of some description is occuring somewhere but the speed with which
these changes happen baffle me, and I dont thik there is much setup work I
can do to change it. I could install a profiler to find out whats going
on but it is a live system and I am loath to do so.
Finally it is worth noting that I have only just made this system live and
a functionally identical although architecturally simpler version ran
quite happily under the same loads using no more than 256m of ram under
JRun 3.1.
Any ideas?!
cheers
Pete
Kiss Technologies
http://www.kisstechnologies.co.uk/
4, Percy Street
London
W1T 1DF
Phone numbers:
Phone 020 7692 9922
Fax 020 7692 9923