Re: Tomcat performance issue?

2004-04-19 Thread Daniel Gibby






I'm sending my JVM stack trace to see if any of you are better at
reading it than I am. ;-)

I'm guessing that you can somehow tell by looking at the stack trace
whether the connections between apache and tomcat are somehow being
held onto or locked waiting for something and not released. Maybe a
database connection is not released? Maybe apache graceful causes the
problem? Any input is appreciated.

Thanks for your help!

apache version 2.0.40
mod_jk 2.0.2
tomcat 4.1.27 and 4.1.30

I've attached the javacore file (I stripped out classloader lines since
they take up the majority of the file) Let me know if you need to see
those.

Daniel Gibby

David Rees wrote:

  Daniel Gibby wrote:
  
  
Tomcat config:
Connector
className="org.apache.catalina.connector.http.HttpConnector"
   port="8080" minProcessors="5" maxProcessors="255"
   enableLookups="true" redirectPort="8443"
   acceptCount="100" debug="0" connectionTimeout="6"/

Hey, I just realized something... I think I have been having lockups
around every 16 hours... 6 seconds! So what does that mean about
this configuration?

  
  
connectionTimeout is defined in milliseconds, not seconds, so that is 60
seconds, not 16 hours.

  
  
Is some servlet not returning content but hanging on to a connection?

  
  
Could be, or could be that your server is really busy.  When you look at
the server-status through Apache, does it show 255 processes busy as well?

  
  
Could you explain a little further about 'bug in a servlet causing it to
not return'?

  
  
You could either have a deadlock (synchronization issue) in your code, or
an infinite loop.

  
  
I have a stack trace, but I don't see how that helps me figure out where
my problem might be... I'm not sure what exactly to look for.

  
  
Compress it and post it to the list or put it on a public webserver so we
can take a look.

Cheers

Dave

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

  






javacore.20040413.36.23498-short.txt.gz
Description: application/gzip
-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

RE: Tomcat performance issue?

2004-04-13 Thread Shapira, Yoav

Hi,
Absolutely.  Peter and I have been preaching this for years now ;)  I'm
glad this has helped you...

Yoav Shapira
Millennium Research Informatics


-Original Message-
From: Peter Lin [mailto:[EMAIL PROTECTED]
Sent: Monday, April 12, 2004 10:17 PM
To: Tomcat Users List
Subject: RE: Tomcat performance issue?


glad the suggestion helps. I firmly believe in
profiling code to make sure simple little mistakes
that appear harmless aren't killing performance.

I'm constantly amazed at how little things improve
performance. the benefit of using OptimizeIt or any
other good profiling tool is well worth it. that's my
biased perspective :)

peter lin


--- Allistair Crossley [EMAIL PROTECTED]
wrote:
 This evening I did the same with JProbe under 360
 requests as you describe and this led to me gaining
 a 38% speedup.

 The main bottleneck I found was some very simple
 tags I have were calling out.flush() at the end.
 Thiw was consuming 14 seconds of time to flush 1
 string from the tag. The tag is called many times
 within our JSPs because it calls the current skin
 label.

 By simply removing the flush call the tag call
 method time across the load test went down to 2s.
 Not bad hey. There were other areas which I solved
 with application scope caching and a bean pool for a
 3rd party bean that takes ages to initialise a
 connection.

 I am getting there slowly but surely but Yoav I
 think was right all along and it is the code and you
 have to profile it and examine those call graphs!!!

 ADC

  -Original Message-
  From: Peter Lin [mailto:[EMAIL PROTECTED]
  Sent: Mon 12/04/2004 19:53
  To: Tomcat Users List
  Cc:
  Subject: Re: Tomcat performance issue?




  luckily I have a license of Borland OptimizeIt.

  What I do is I start tomcat using OptimizeIt. Then
 I create a test plan in JMeter. Once tomcat is
 running, I warm it up by sending it a couple hundred
 requests to make sure all the pages are compiled.

  before the test starts, use OptimizeIt to garbage
 collect. Once that is done, I start the test and
 look at the number of threads and size of the heap.
 If there's a memory leak, either the thread count
 will increase, or the heap will grow rapidly. Once I
 see either one, I then switch to the call graph to
 get a better picture of which methods are getting
 called. Usually, that is enough to point towards a
 culprit.

  repeat, and rinse as many times as needed until
 you've squashed all bugs and leaks.

  peter lin




  Matt Woodings [EMAIL PROTECTED] wrote:
  I just read your post this morning (I am lurking
 today as I have a few
  issues of my own to clear up :-) ) and I think that
 is some really good
  advice you gave. I do have a question though.

  Once you have noticed you have a memory leak, how
 do you go about locating
  it?

  Matt


  -
  Do you Yahoo!?
  Yahoo! Tax Center - File online by April 15th



 FONT SIZE=1 FACE=VERDANA,ARIAL COLOR=BLUE

---
 QAS Ltd.
 Developers of QuickAddress Software
 a href=http://www.qas.com;www.qas.com/a
 Registered in England: No 2582055
 Registered in Australia: No 082 851 474

---
 /FONT

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





__
Do you Yahoo!?
Yahoo! Small Business $15K Web Design Giveaway
http://promotions.yahoo.com/design_giveaway/

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




This e-mail, including any attachments, is a confidential business communication, and 
may contain information that is confidential, proprietary and/or privileged.  This 
e-mail is intended only for the individual(s) to whom it is addressed, and may not be 
saved, copied, printed, disclosed or used by anyone else.  If you are not the(an) 
intended recipient, please immediately delete this e-mail from your computer system 
and notify the sender.  Thank you.


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



Re: Tomcat performance issue?

2004-04-12 Thread Daniel Gibby
I have this same problem. It creeped up without any configuration 
changes on 4.1.27
It doesn't always print this error message out, but the effect is the same.

SEVERE: All threads (75) are currently busy, waiting. Increase
 maxThreads (75) or check the servlet status

My apache config:

Timeouts: connection: 300keep-alive: 300
MPM Name: Prefork
MPM Information: Max Daemons: 255 Threaded: no Forked: yes
IfModule prefork.c
StartServers   8
MinSpareServers5
MaxSpareServers   20
MaxClients   255
MaxRequestsPerChild  1000
/IfModule
Tomcat config:
   Connector className=org.apache.catalina.connector.http.HttpConnector
  port=8080 minProcessors=5 maxProcessors=255
  enableLookups=true redirectPort=8443
  acceptCount=100 debug=0 connectionTimeout=6/
Hey, I just realized something... I think I have been having lockups 
around every 16 hours... 6 seconds! So what does that mean about 
this configuration?
Why is the connectionTimeout being reached? I think I had set it to a 
really high number because I figured I didn't want anything to ever hit it.

Is some servlet not returning content but hanging on to a connection?

Could you explain a little further about 'bug in a servlet causing it to 
not return'?
I have a stack trace, but I don't see how that helps me figure out where 
my problem might be... I'm not sure what exactly to look for.

Daniel Gibby

David Rees wrote:
 

Like the messages say, all Tomcat threads are busy and you've hit the
maximum number of threads which can be processed concurrently.  Sounds
like you've got either a bug in a servlet causing it to not return, or
your server is simply overloaded.  You can get a stack trace from the
JVM to help debug this issue pretty easily.
 



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


Re: Tomcat performance issue?

2004-04-12 Thread Daniel Gibby
I forgot to mention that I have All threads (255) are currently busy, 
not (75) which makes sense.

Daniel Gibby wrote:

I have this same problem. It creeped up without any configuration 
changes on 4.1.27
It doesn't always print this error message out, but the effect is the 
same.

SEVERE: All threads (75) are currently busy, waiting. Increase

 maxThreads (75) or check the servlet status


My apache config:

Timeouts: connection: 300keep-alive: 300
MPM Name: Prefork
MPM Information: Max Daemons: 255 Threaded: no Forked: yes
IfModule prefork.c
StartServers   8
MinSpareServers5
MaxSpareServers   20
MaxClients   255
MaxRequestsPerChild  1000
/IfModule
Tomcat config:
   Connector 
className=org.apache.catalina.connector.http.HttpConnector
  port=8080 minProcessors=5 maxProcessors=255
  enableLookups=true redirectPort=8443
  acceptCount=100 debug=0 connectionTimeout=6/

Hey, I just realized something... I think I have been having lockups 
around every 16 hours... 6 seconds! So what does that mean about 
this configuration?
Why is the connectionTimeout being reached? I think I had set it to a 
really high number because I figured I didn't want anything to ever 
hit it.

Is some servlet not returning content but hanging on to a connection?

Could you explain a little further about 'bug in a servlet causing it 
to not return'?
I have a stack trace, but I don't see how that helps me figure out 
where my problem might be... I'm not sure what exactly to look for.

Daniel Gibby

David Rees wrote:
 

Like the messages say, all Tomcat threads are busy and you've hit the
maximum number of threads which can be processed concurrently.  Sounds
like you've got either a bug in a servlet causing it to not return, or
your server is simply overloaded.  You can get a stack trace from the
JVM to help debug this issue pretty easily.
 



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


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


RE: Tomcat performance issue?

2004-04-12 Thread Trieu, Jason T - CNF
It could be a bug in your servlet that hangs your connection or you
might actually have a big enough load to max out your number of
concurrent Tomcat threads (maxProcessors).  If it is load, you should
look into increasing your maxProcessors.  Make sure though that you have
enough JVM heap memory (Xmx parm) to handle it or you will run into
OutOfMemory error which is worse than out-of-connections.

Jason

-Original Message-
From: Daniel Gibby [mailto:[EMAIL PROTECTED] 
Sent: Monday, April 12, 2004 9:43 AM
To: Tomcat Users List
Subject: Re: Tomcat performance issue?


I have this same problem. It creeped up without any configuration 
changes on 4.1.27
It doesn't always print this error message out, but the effect is the
same.

SEVERE: All threads (75) are currently busy, waiting. Increase
  maxThreads (75) or check the servlet status


My apache config:

Timeouts: connection: 300keep-alive: 300
MPM Name: Prefork
MPM Information: Max Daemons: 255 Threaded: no Forked: yes IfModule
prefork.c
StartServers   8
MinSpareServers5
MaxSpareServers   20
MaxClients   255
MaxRequestsPerChild  1000
/IfModule

Tomcat config:
Connector
className=org.apache.catalina.connector.http.HttpConnector
   port=8080 minProcessors=5 maxProcessors=255
   enableLookups=true redirectPort=8443
   acceptCount=100 debug=0 connectionTimeout=6/

Hey, I just realized something... I think I have been having lockups 
around every 16 hours... 6 seconds! So what does that mean about 
this configuration?
Why is the connectionTimeout being reached? I think I had set it to a 
really high number because I figured I didn't want anything to ever hit
it.

Is some servlet not returning content but hanging on to a connection?

Could you explain a little further about 'bug in a servlet causing it to

not return'?
I have a stack trace, but I don't see how that helps me figure out where

my problem might be... I'm not sure what exactly to look for.

Daniel Gibby

David Rees wrote:
  

Like the messages say, all Tomcat threads are busy and you've hit the 
maximum number of threads which can be processed concurrently.  Sounds 
like you've got either a bug in a servlet causing it to not return, or 
your server is simply overloaded.  You can get a stack trace from the 
JVM to help debug this issue pretty easily.
  



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


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



Re: Tomcat performance issue?

2004-04-12 Thread Daniel Gibby
255 is as high as apache will go without recompiling. Therefore, it 
wouldn't make a difference if I go higher on the tomcat end either, right?

Trieu, Jason T - CNF wrote:

It could be a bug in your servlet that hangs your connection or you
might actually have a big enough load to max out your number of
concurrent Tomcat threads (maxProcessors).  If it is load, you should
look into increasing your maxProcessors.  Make sure though that you have
enough JVM heap memory (Xmx parm) to handle it or you will run into
OutOfMemory error which is worse than out-of-connections.
Jason

-Original Message-
From: Daniel Gibby [mailto:[EMAIL PROTECTED] 
Sent: Monday, April 12, 2004 9:43 AM
To: Tomcat Users List
Subject: Re: Tomcat performance issue?

I have this same problem. It creeped up without any configuration 
changes on 4.1.27
It doesn't always print this error message out, but the effect is the
same.

 

SEVERE: All threads (75) are currently busy, waiting. Increase
   

maxThreads (75) or check the servlet status
   

My apache config:

Timeouts: connection: 300keep-alive: 300
MPM Name: Prefork
MPM Information: Max Daemons: 255 Threaded: no Forked: yes IfModule
prefork.c
StartServers   8
MinSpareServers5
MaxSpareServers   20
MaxClients   255
MaxRequestsPerChild  1000
/IfModule
Tomcat config:
   Connector
className=org.apache.catalina.connector.http.HttpConnector
  port=8080 minProcessors=5 maxProcessors=255
  enableLookups=true redirectPort=8443
  acceptCount=100 debug=0 connectionTimeout=6/
Hey, I just realized something... I think I have been having lockups 
around every 16 hours... 6 seconds! So what does that mean about 
this configuration?
Why is the connectionTimeout being reached? I think I had set it to a 
really high number because I figured I didn't want anything to ever hit
it.

Is some servlet not returning content but hanging on to a connection?

Could you explain a little further about 'bug in a servlet causing it to

not return'?
I have a stack trace, but I don't see how that helps me figure out where
my problem might be... I'm not sure what exactly to look for.

Daniel Gibby

 

David Rees wrote:

Like the messages say, all Tomcat threads are busy and you've hit the 
maximum number of threads which can be processed concurrently.  Sounds 
like you've got either a bug in a servlet causing it to not return, or 
your server is simply overloaded.  You can get a stack trace from the 
JVM to help debug this issue pretty easily.

   



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



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


Re: Tomcat performance issue?

2004-04-12 Thread David Rees
Daniel Gibby wrote:

 Tomcat config:
 Connector
 className=org.apache.catalina.connector.http.HttpConnector
port=8080 minProcessors=5 maxProcessors=255
enableLookups=true redirectPort=8443
acceptCount=100 debug=0 connectionTimeout=6/

 Hey, I just realized something... I think I have been having lockups
 around every 16 hours... 6 seconds! So what does that mean about
 this configuration?

connectionTimeout is defined in milliseconds, not seconds, so that is 60
seconds, not 16 hours.

 Is some servlet not returning content but hanging on to a connection?

Could be, or could be that your server is really busy.  When you look at
the server-status through Apache, does it show 255 processes busy as well?

 Could you explain a little further about 'bug in a servlet causing it to
 not return'?

You could either have a deadlock (synchronization issue) in your code, or
an infinite loop.

 I have a stack trace, but I don't see how that helps me figure out where
 my problem might be... I'm not sure what exactly to look for.

Compress it and post it to the list or put it on a public webserver so we
can take a look.

Cheers

Dave

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



Re: Tomcat performance issue?

2004-04-12 Thread Peter Lin
From my own experience, this kind of behavior appears when a session isn't getting 
timed out for one reason or another.  For example, say you get data from some remote 
site using your own Http client libraries that is multi-threaded. If that thread sits 
around and the socket it has isn't explicitly closed, it can prevent tomcat from 
invalidating the session. this would create a memory leak which may not be noticeable 
if you don't get a lot of load. One easy way to expose this kind of bug is to load 
test your webapp before deploying.
 
Throw the load you get in 16 hrs at tomcat and you'll likely see the memory leak. In 
all cases, issues with performance was due to a bug in our application. egular load 
testing is the best way to expose these issues during development.
 
peter
 
 


David Rees [EMAIL PROTECTED] wrote:
Daniel Gibby wrote:

 Tomcat config:
  className=org.apache.catalina.connector.http.HttpConnector
 port=8080 minProcessors=5 maxProcessors=255
 enableLookups=true redirectPort=8443
 acceptCount=100 debug=0 connectionTimeout=6/

 Hey, I just realized something... I think I have been having lockups
 around every 16 hours... 6 seconds! So what does that mean about
 this configuration?

connectionTimeout is defined in milliseconds, not seconds, so that is 60
seconds, not 16 hours.

 Is some servlet not returning content but hanging on to a connection?

Could be, or could be that your server is really busy. When you look at
the server-status through Apache, does it show 255 processes busy as well?

 Could you explain a little further about 'bug in a servlet causing it to
 not return'?

You could either have a deadlock (synchronization issue) in your code, or
an infinite loop.

 I have a stack trace, but I don't see how that helps me figure out where
 my problem might be... I'm not sure what exactly to look for.

Compress it and post it to the list or put it on a public webserver so we
can take a look.

Cheers

Dave

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


-
Do you Yahoo!?
Yahoo! Tax Center - File online by April 15th

Re: Tomcat performance issue?

2004-04-12 Thread Matt Woodings
I just read your post this morning (I am lurking today as I have a few
issues of my own to clear up :-) ) and I think that is some really good
advice you gave.  I do have a question though.

Once you have noticed you have a memory leak, how do you go about locating
it?

Matt
- Original Message - 
From: Peter Lin [EMAIL PROTECTED]
To: Tomcat Users List [EMAIL PROTECTED]
Sent: Monday, April 12, 2004 1:07 PM
Subject: Re: Tomcat performance issue?


 From my own experience, this kind of behavior appears when a session isn't
getting timed out for one reason or another.  For example, say you get data
from some remote site using your own Http client libraries that is
multi-threaded. If that thread sits around and the socket it has isn't
explicitly closed, it can prevent tomcat from invalidating the session. this
would create a memory leak which may not be noticeable if you don't get a
lot of load. One easy way to expose this kind of bug is to load test your
webapp before deploying.

 Throw the load you get in 16 hrs at tomcat and you'll likely see the
memory leak. In all cases, issues with performance was due to a bug in our
application. egular load testing is the best way to expose these issues
during development.

 peter




 David Rees [EMAIL PROTECTED] wrote:
 Daniel Gibby wrote:
 
  Tomcat config:
   className=org.apache.catalina.connector.http.HttpConnector
  port=8080 minProcessors=5 maxProcessors=255
  enableLookups=true redirectPort=8443
  acceptCount=100 debug=0 connectionTimeout=6/
 
  Hey, I just realized something... I think I have been having lockups
  around every 16 hours... 6 seconds! So what does that mean about
  this configuration?

 connectionTimeout is defined in milliseconds, not seconds, so that is 60
 seconds, not 16 hours.

  Is some servlet not returning content but hanging on to a connection?

 Could be, or could be that your server is really busy. When you look at
 the server-status through Apache, does it show 255 processes busy as well?

  Could you explain a little further about 'bug in a servlet causing it to
  not return'?

 You could either have a deadlock (synchronization issue) in your code, or
 an infinite loop.

  I have a stack trace, but I don't see how that helps me figure out where
  my problem might be... I'm not sure what exactly to look for.

 Compress it and post it to the list or put it on a public webserver so we
 can take a look.

 Cheers

 Dave

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


 -
 Do you Yahoo!?
 Yahoo! Tax Center - File online by April 15th



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



RE: Tomcat performance issue?

2004-04-12 Thread Shapira, Yoav

Hi,

Once you have noticed you have a memory leak, how do you go about
locating
it?

You don't just notice it out of the blue: you typically notice it
because a profiler shows it.  The same profiler shows you where it is.
Noticing and locating is typically one and the same for memory leaks.
It's fixing that's the 2nd step.

Yoav Shapira



This e-mail, including any attachments, is a confidential business communication, and 
may contain information that is confidential, proprietary and/or privileged.  This 
e-mail is intended only for the individual(s) to whom it is addressed, and may not be 
saved, copied, printed, disclosed or used by anyone else.  If you are not the(an) 
intended recipient, please immediately delete this e-mail from your computer system 
and notify the sender.  Thank you.


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



Re: Tomcat performance issue?

2004-04-12 Thread Peter Lin
 
luckily I have a license of Borland OptimizeIt.
 
What I do is I start tomcat using OptimizeIt. Then I create a test plan in JMeter. 
Once tomcat is running, I warm it up by sending it a couple hundred requests to make 
sure all the pages are compiled.
 
before the test starts, use OptimizeIt to garbage collect. Once that is done, I start 
the test and look at the number of threads and size of the heap. If there's a memory 
leak, either the thread count will increase, or the heap will grow rapidly. Once I see 
either one, I then switch to the call graph to get a better picture of which methods 
are getting called. Usually, that is enough to point towards a culprit.
 
repeat, and rinse as many times as needed until you've squashed all bugs and leaks.
 
peter lin
 
 


Matt Woodings [EMAIL PROTECTED] wrote:
I just read your post this morning (I am lurking today as I have a few
issues of my own to clear up :-) ) and I think that is some really good
advice you gave. I do have a question though.

Once you have noticed you have a memory leak, how do you go about locating
it?

Matt


-
Do you Yahoo!?
Yahoo! Tax Center - File online by April 15th

RE: Tomcat performance issue?

2004-04-12 Thread Allistair Crossley
This evening I did the same with JProbe under 360 requests as you describe and this 
led to me gaining a 38% speedup.
 
The main bottleneck I found was some very simple tags I have were calling out.flush() 
at the end. Thiw was consuming 14 seconds of time to flush 1 string from the tag. The 
tag is called many times within our JSPs because it calls the current skin label.
 
By simply removing the flush call the tag call method time across the load test went 
down to 2s. Not bad hey. There were other areas which I solved with application scope 
caching and a bean pool for a 3rd party bean that takes ages to initialise a 
connection.
 
I am getting there slowly but surely but Yoav I think was right all along and it is 
the code and you have to profile it and examine those call graphs!!!
 
ADC

-Original Message- 
From: Peter Lin [mailto:[EMAIL PROTECTED] 
Sent: Mon 12/04/2004 19:53 
To: Tomcat Users List 
Cc: 
Subject: Re: Tomcat performance issue?




luckily I have a license of Borland OptimizeIt.

What I do is I start tomcat using OptimizeIt. Then I create a test plan in 
JMeter. Once tomcat is running, I warm it up by sending it a couple hundred requests 
to make sure all the pages are compiled.

before the test starts, use OptimizeIt to garbage collect. Once that is done, 
I start the test and look at the number of threads and size of the heap. If there's a 
memory leak, either the thread count will increase, or the heap will grow rapidly. 
Once I see either one, I then switch to the call graph to get a better picture of 
which methods are getting called. Usually, that is enough to point towards a culprit.

repeat, and rinse as many times as needed until you've squashed all bugs and 
leaks.

peter lin




Matt Woodings [EMAIL PROTECTED] wrote:
I just read your post this morning (I am lurking today as I have a few
issues of my own to clear up :-) ) and I think that is some really good
advice you gave. I do have a question though.

Once you have noticed you have a memory leak, how do you go about locating
it?

Matt


-
Do you Yahoo!?
Yahoo! Tax Center - File online by April 15th 



FONT SIZE=1 FACE=VERDANA,ARIAL COLOR=BLUE 
---
QAS Ltd.
Developers of QuickAddress Software
a href=http://www.qas.com;www.qas.com/a
Registered in England: No 2582055
Registered in Australia: No 082 851 474
---
/FONT

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

RE: Tomcat performance issue?

2004-04-12 Thread Peter Lin

glad the suggestion helps. I firmly believe in
profiling code to make sure simple little mistakes
that appear harmless aren't killing performance.

I'm constantly amazed at how little things improve
performance. the benefit of using OptimizeIt or any
other good profiling tool is well worth it. that's my
biased perspective :)

peter lin


--- Allistair Crossley [EMAIL PROTECTED]
wrote:
 This evening I did the same with JProbe under 360
 requests as you describe and this led to me gaining
 a 38% speedup.
  
 The main bottleneck I found was some very simple
 tags I have were calling out.flush() at the end.
 Thiw was consuming 14 seconds of time to flush 1
 string from the tag. The tag is called many times
 within our JSPs because it calls the current skin
 label.
  
 By simply removing the flush call the tag call
 method time across the load test went down to 2s.
 Not bad hey. There were other areas which I solved
 with application scope caching and a bean pool for a
 3rd party bean that takes ages to initialise a
 connection.
  
 I am getting there slowly but surely but Yoav I
 think was right all along and it is the code and you
 have to profile it and examine those call graphs!!!
  
 ADC
 
   -Original Message- 
   From: Peter Lin [mailto:[EMAIL PROTECTED] 
   Sent: Mon 12/04/2004 19:53 
   To: Tomcat Users List 
   Cc: 
   Subject: Re: Tomcat performance issue?
   
   
 
   
   luckily I have a license of Borland OptimizeIt.
   
   What I do is I start tomcat using OptimizeIt. Then
 I create a test plan in JMeter. Once tomcat is
 running, I warm it up by sending it a couple hundred
 requests to make sure all the pages are compiled.
   
   before the test starts, use OptimizeIt to garbage
 collect. Once that is done, I start the test and
 look at the number of threads and size of the heap.
 If there's a memory leak, either the thread count
 will increase, or the heap will grow rapidly. Once I
 see either one, I then switch to the call graph to
 get a better picture of which methods are getting
 called. Usually, that is enough to point towards a
 culprit.
   
   repeat, and rinse as many times as needed until
 you've squashed all bugs and leaks.
   
   peter lin
   
   
   
   
   Matt Woodings [EMAIL PROTECTED] wrote:
   I just read your post this morning (I am lurking
 today as I have a few
   issues of my own to clear up :-) ) and I think that
 is some really good
   advice you gave. I do have a question though.
   
   Once you have noticed you have a memory leak, how
 do you go about locating
   it?
   
   Matt
   
   
   -
   Do you Yahoo!?
   Yahoo! Tax Center - File online by April 15th 
 
 
 
 FONT SIZE=1 FACE=VERDANA,ARIAL COLOR=BLUE 

---
 QAS Ltd.
 Developers of QuickAddress Software
 a href=http://www.qas.com;www.qas.com/a
 Registered in England: No 2582055
 Registered in Australia: No 082 851 474

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





__
Do you Yahoo!?
Yahoo! Small Business $15K Web Design Giveaway 
http://promotions.yahoo.com/design_giveaway/

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



Re: Tomcat performance issue?

2004-04-10 Thread David Rees
Denise Mangano wrote, On 4/9/2004 10:05 PM:
 
I've tried searching the archives but have come up empty-handed.  A few
days ago I received a few complaints that my users hit a certain point
in the application and could go no further.  This point was when Apache
gives control to Tomcat.  I checked the log and found this.
 
Apr 4, 2004 2:19:43 PM org.apache.tomcat.util.threads.ThreadPool logFull
SEVERE: All threads (75) are currently busy, waiting. Increase
maxThreads (75) or check the servlet status
 
The only thing that did the trick was restarting Tomcat and Apache.  Any
ideas on what these errors mean?
Like the messages say, all Tomcat threads are busy and you've hit the 
maximum number of threads which can be processed concurrently.  Sounds 
like you've got either a bug in a servlet causing it to not return, or 
your server is simply overloaded.  You can get a stack trace from the 
JVM to help debug this issue pretty easily.

-Dave

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


Re: Tomcat performance issue?

2004-04-10 Thread Bill Barker

David Rees [EMAIL PROTECTED] wrote in message
news:[EMAIL PROTECTED]
 Denise Mangano wrote, On 4/9/2004 10:05 PM:
 
  I've tried searching the archives but have come up empty-handed.  A few
  days ago I received a few complaints that my users hit a certain point
  in the application and could go no further.  This point was when Apache
  gives control to Tomcat.  I checked the log and found this.
 
  Apr 4, 2004 2:19:43 PM org.apache.tomcat.util.threads.ThreadPool logFull
  SEVERE: All threads (75) are currently busy, waiting. Increase
  maxThreads (75) or check the servlet status
 
  The only thing that did the trick was restarting Tomcat and Apache.  Any
  ideas on what these errors mean?

 Like the messages say, all Tomcat threads are busy and you've hit the
 maximum number of threads which can be processed concurrently.  Sounds
 like you've got either a bug in a servlet causing it to not return, or
 your server is simply overloaded.  You can get a stack trace from the
 JVM to help debug this issue pretty easily.


Also, when running behind Apache, you have need to have at least as many
Tomcat threads as you have Apache children allowed (since each child will be
talking to a single thread).  You should probably increase the maxThreads on
you AJP/1.3 Connector to match what you've configured for MaxChildren in
Apache.  If you expect your loads to come in bursts, then you can configure
maxSpareThreads low to allow Tomcat to discard threads that are freed up by
Apache killing off children.

 -Dave




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



Autoreply: Re: Tomcat performance issue?

2004-04-10 Thread DirectXtras
Hello,

Due to the increased volume of SPAM this mailbox has been closed.

Please contact us via http://www.directxtras.com/ContactUS.asp

We apology for the inconvenience.

Best Regards,
--
The DirectXtras Team
-
DirectXtras - Xtra Power for Director and Authorware -
  http://www.directxtras.com
Sites with something to say - http://www.SpeaksForItself.com
-


Your message reads:

Received: from mail.apache.org (unverified [208.185.179.12]) by mail2.intermedia.net
 (Rockliffe SMTPRA 4.5.6) with SMTP id [EMAIL PROTECTED] for [EMAIL PROTECTED];
 Sat, 10 Apr 2004 12:45:24 -0700
Received: (qmail 61062 invoked by uid 500); 10 Apr 2004 19:45:04 -
Mailing-List: contact [EMAIL PROTECTED]; run by ezmlm
Precedence: bulk
List-Unsubscribe: mailto:[EMAIL PROTECTED]
List-Subscribe: mailto:[EMAIL PROTECTED]
List-Help: mailto:[EMAIL PROTECTED]
List-Post: mailto:[EMAIL PROTECTED]
List-Id: Tomcat Users List tomcat-user.jakarta.apache.org
Reply-To: Tomcat Users List [EMAIL PROTECTED]
Delivered-To: mailing list [EMAIL PROTECTED]
Received: (qmail 61040 invoked from network); 10 Apr 2004 19:45:03 -
Received: from unknown (HELO main.gmane.org) (80.91.224.249)
  by daedalus.apache.org with SMTP; 10 Apr 2004 19:45:03 -
Received: from list by main.gmane.org with local (Exim 3.35 #1 (Debian))
id 1BCOPc-0001fg-00
for [EMAIL PROTECTED]; Sat, 10 Apr 2004 21:45:08 +0200
Received: from lsanca1-ar19-4-46-072-212.lsanca1.dsl-verizon.net ([4.46.72.212])
by main.gmane.org with esmtp (Gmexim 0.1 (Debian))
id 1AlnuQ-0007hv-00
for [EMAIL PROTECTED]; Sat, 10 Apr 2004 21:45:08 +0200
Received: from wbarker by lsanca1-ar19-4-46-072-212.lsanca1.dsl-verizon.net with local 
(Gmexim 0.1 (Debian))
id 1AlnuQ-0007hv-00
for [EMAIL PROTECTED]; Sat, 10 Apr 2004 21:45:08 +0200
X-Injected-Via-Gmane: http://gmane.org/
To: [EMAIL PROTECTED]
From: Bill Barker [EMAIL PROTECTED]
Subject: Re: Tomcat performance issue?
Date: Sat, 10 Apr 2004 12:58:23 -0700
Lines: 35
Message-ID: [EMAIL PROTECTED]
References: [EMAIL PROTECTED] [EMAIL PROTECTED]
X-Complaints-To: [EMAIL PROTECTED]
X-Gmane-NNTP-Posting-Host: lsanca1-ar19-4-46-072-212.lsanca1.dsl-verizon.net
X-MSMail-Priority: Normal
X-Newsreader: Microsoft Outlook Express 6.00.2800.1158
X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2800.1165
Sender: news [EMAIL PROTECTED]
X-Spam-Rating: daedalus.apache.org 1.6.2 0/1000/N


David Rees [EMAIL PROTECTED] wrote in message
news:[EMAIL PROTECTED]
 Denise Mangano wrote, On 4/9/2004 10:05 PM:
 
  I've tried searching the archives but have come up empty-handed.  A few
  days ago I received a few complaints that my users hit a certain point
  in the application and could go no further.  This point was when Apache
  gives control to Tomcat.  I checked the log and found this.
 
  Apr 4, 2004 2:19:43 PM org.apache.tomcat.util.threads.ThreadPool logFull
  SEVERE: All threads (75) are currently busy, waiting. Increase
  maxThreads (75) or check the servlet status
 
  The only thing that did the trick was restarting Tomcat and Apache.  Any
  ideas on what these errors mean?

 Like the messages say, all Tomcat threads are busy and you've hit the
 maximum number of threads which can be processed concurrently.  Sounds
 like you've got either a bug in a servlet causing it to not return, or
 your server is simply overloaded.  You can get a stack trace from the
 JVM to help debug this issue pretty easily.


Also, when running behind Apache, you have need to have at least as many
Tomcat threads as you have Apache children allowed (since each child will be
talking to a single thread).  You should probably increase the maxThreads on
you AJP/1.3 Connector to match what you've configured for MaxChildren in
Apache.  If you expect your loads to come in bursts, then you can configure
maxSpareThreads low to allow Tomcat to discard threads that are freed up by
Apache killing off children.

 -Dave




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



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