I recently had a problem with a Windoze server hanging
up due to memory problems.
I've got Tomcat 4.1.29 installed to run as a service
under JDK 1.4.1_05 on this Windows 2000 server. The
Tomcat memory settings on startup are -Xms64m and
-Xmx1024m. The server has 512MB of physical RAM
installed. The Windoze task manager says Tomcat is
sitting at ~128MB of memory.
My understanding is that Java's garbage collection
will reclaim heap-allocated memory to the JVM, but not
necessarily to the OS. Is this true? What this means
is that a Windoze server admin could look at the task
manager and see a large memory usage for Tomcat, but
that doesn't necessarily reflect Tomcat's current
usage.
It's more like a high water mark on a pier: it'll show
the highest value that Tomcat has used, but the real
value will be lower if the garbage collector runs and
the tide goes out. If you read a lot of objects into
session you could end up with a big high water mark.
The application is a JSP front end with a single
controller servlet that interacts with an Oracle
database. The only data members in the servlet are
some read-only map that are initialized on startup.
There are some session data that are maintained for
certain user requests, but the rest are all stateless
request/response.
The server admin is saying that the problem is Windoze
memory management. When a new process starts up
outside of Tomcat, it could be that memory isn't
reachable, and the new process hangs.
We're going to increase the virtual page size on
Windoze and change the startup settings for the Tomcat
service to -Xms256m and -Xmx1536m.
So my questions are:
(1) Is my understanding of the interaction between the
JVM and OS memory management correct?
(2) Are there any other tuning settings for Tomcat
that I need to look at?
Thanks - %
__________________________________
Do you Yahoo!?
Friends. Fun. Try the all-new Yahoo! Messenger.
http://messenger.yahoo.com/
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]