If I were you, I'd load test your site first before going to production. As you pointed out, you cannot afford to stop your production server or hang it with OutOfMemory errors.
This is good advice. Load testing is generally easy to do in development, and hard to recover from if you don't do it, once you're in prod.
You can get jvm dumps on windows by turning on the -verbosegc. This will dump out stack traces repeatedly without exiting the JVM.
I don';t think this is accurate. '-verbosegc' only logs the GC activity to the stdout or stderr or whatever. It does not generate stack traces for you.
CTRL-BREAK on win32 gives you a full thread-dump. This will give you a stack trace for any running thread, as well as information about it's state (runnable, waiting on monitor, sleeping, etc.). This can be valuable when your application is not responding in timely way. If you're thrashing or getting LOTS and lots of GC activity, your memory settings might be off. On the other hand, if you have horrible code, you can never recover from that, even with a dual-cpu box ith a gig of ram :)
-chris
signature.asc
Description: OpenPGP digital signature
