Howdy,

>It seems that TC4 has some algorithm which tags objects (read
>HttpRequests) as long- or short-lived.

Please do tell where you got that impression?  ;)

>At 70+ connections per second, I guess most of your HttpRequests would
>be short lived, which means the gc will reclaim them first, but not
>until the heap is exhausted.

Not true.  They will be reclaimed when possible according to the
selected GC algorithm

>So it might help to allocate more to the short lived requests to force
>gc to reclaim more often, like this:
>
>-XX:NewSize=448m -XX:MaxNewSize=448m

This is wrong reasoning, won't force short-lived objects to be reclaimed
more often, and you should use a profiler to see that yourself before
putting it in a production system ;)

>> The server has 2 GB physical memory and 4 GB swap file.  During peak
>times
>> I'm hitting between 60 and 75 requests per second and it is using
pretty
>> close to all of the memory.  I've seen the JVM using ~ 830 MB
watching
>top.

Don't confuse heap usage with "top" output, as their variance can be
significant (10-20%).  "top" output will always be more than the current
heap, as it includes stack, symbol table, translation table, thread, and
OS-internal overhead.  The ration of top output to heap allocation is
very application and OS-specific.  Use the Runtime's class freeMemory()
and totalMemory() to get a measure of the heap itself.

>> >I've set CATALINA_OPTS to use -Xmx896m and -Xms384m.  That works
fine
>with
>> >maxProcessors set to 384.  Problem is, if I set -Xmx higher or
>> maxProcessors
>> >higher, I get he OutOfMemoryError.


Do you actually get up to 384 processors?  Are they all active?  Are any
hanging?  Can you easily reproduce the OutOfMemoryError with JMeter or
another stress-testing tool?

>> >>First off, I'm using RedHat Linux 7.3, IBM JDK 1.4.1, and Tomcat
4.1.24

You might want to update to 4.1.27 ;)

>> >>I'm trying to get Tomcat to handle a lot of traffic (4-5 million
hits
>> >per day) and bumping up against a problem I for life of me can't
figure
>> >out.
>> >>So, I'm hoping someone else on this list has run into this problem
and
>> >can help me out!
>> >>
>> >>Basically, I can't set maxProcessors higher than 384.  If I do,
Tomcat

We have a system with 512 maxProcessors, using 1G heap, and it's been
running fine in production for a couple of months now (stopping only to
update tomcat from 4.1.24 to 4.1.27).  It's handled up to about 400
concurrent requests, but I picked 512 as the maxProcessors value to
leave some overhead for peak times.

So 384 is not a magical bottleneck, at least for us, not can I find any
code references that would suggest that it is ;)

What about your thread limits?  All the limits controlled by ulimit?
Could it be you're hitting those (the "resource constraints" part of
your error message) as opposed to running out of memory?

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]

Reply via email to