Roughly ten times as many people are registered to use the project than I was told, so I purchased more RAM. That makes the machine stats these.
Pentium IV 2.4Ghz 2GB DDR ECC RAM Debian Linux 2 stable Tomcat 4.1.30
A segment of the system is designed to send e-mail to everyone on a list. Each e-mail is sent by starting a thread that terminates when the sending is complete. The upper bound of emails in this list is about a thousand, but will rarely exceed five hundred. The system was running as expected (e.g. capable of sending multiple hundreds of messages) before at 512MB of RAM with the following options appended to JAVA_OPTS in catalina.sh
-Xms 220M -Xmx 440M
Now that the products have gotten the RAM upgrade, I changed these options to
-Xms220m -Xmx1536m
The result was a drop to about forty messages before I got an "Out of Memory- unable to start new native thread" error.
As a result of looking around, particularly at the links like http://h21007.www2.hp.com/cmdspp/QuestionAnswer/1,1764,4AF428BF-32E1-4297-938A-0A1F93DE31B1,00.html and http://jboss.org/wiki/Wiki.jsp?page=OutOfMemoryExceptionWhenCannotCreateThread
I changed the options to these
-Xss1024K -Xms1536m -Xmx1536m
but this only gets the boundary to about one hundred before thread creation fails. We're nowhere near the process limit for Linux, running at approximately 400 or so.
Should I just keep tweaking the configuration settings hoping to find something that works? Give up a little bit more maximum heap size? The one similar post I've seen since March had the user going down to 16k stack size. Is that safe? I can't be blowing my stack on the production machine, that's worse than the problem I have now! I don't have any recursion going on, but I've seen some pretty deep stack traces.
Is there something programmatically I could do, like having the call that starts the thread wait for awhile then try again if it fails?
I've tried to do my homework, but I think I actually passed my limits on this project some time ago. :-) Thanks and good karma in advance for any and all help.
Cheers,
Jim
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
