You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@tomcat.apache.org by Michael Duffy <du...@yahoo.com> on 2004/06/09 17:02:06 UTC

Memory Settings On Tomcat

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: tomcat-user-unsubscribe@jakarta.apache.org
For additional commands, e-mail: tomcat-user-help@jakarta.apache.org


Re: Memory Settings On Tomcat

Posted by Peter Lin <tc...@yahoo.com>.
 
I have it running XP Pro and Win2K3 server without any problems, but that's no gaurantee. I'm only using it for stress testing purposes with simple apps, so it's not like I have a a full blown JSTL or Struts app running on it.
 
 
I think others on the list can provide better information about what kinds of issues you might see.
 
peter
 


Michael Duffy <du...@yahoo.com> wrote:

Thank you, Peter Lin. I wasn't aware of the new
status servlet. I'll look into an upgrade.

One question: any problems reported with installing
Tomcat 5.0.x as a service on Windoze servers? I
believe they switched from Alexandria's JavaService to
the new Jakarta Daemon for TC 5.0.x. Is that correct,
and has that been a seamless transition? Thanks - %


--- Peter Lin wrote:
> if you can upgrade to tomcat5, I would recommend it.
> the reason I suggest this is TC5 has the new status
> servlet, which will tell you how much heap is
> actually in use currently.
> 
> 
> the JVM will not release memory back to the OS that
> is true. in terms of performance the biggest
> indicator of poor performance is the rate at which
> the heap grows and the frequency of full GC.
> 
> 
> Applications that are well behaved should result in
> regular intervals of full GC. Poor performing
> applications wiill cause erratic and frequent full
> GC. Even if you can't upgrade to TC5, it might be
> worth it to d/l and install it. Once you have it
> installed, you can use JMeter to view the server
> load and the memory usage pattern.
> 
> I hope that helps.
> 
> peter
> 
> 
> 
> Michael Duffy wrote: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:
> tomcat-user-unsubscribe@jakarta.apache.org
> For additional commands, e-mail:
> tomcat-user-help@jakarta.apache.org
> 
> 
> 
> ---------------------------------
> Do you Yahoo!?
> Friends. Fun. Try the all-new Yahoo! Messenger





__________________________________
Do you Yahoo!?
Friends. Fun. Try the all-new Yahoo! Messenger.
http://messenger.yahoo.com/ 

---------------------------------------------------------------------
To unsubscribe, e-mail: tomcat-user-unsubscribe@jakarta.apache.org
For additional commands, e-mail: tomcat-user-help@jakarta.apache.org

		
---------------------------------
Do you Yahoo!?
Friends.  Fun. Try the all-new Yahoo! Messenger

Re: Memory Settings On Tomcat

Posted by Michael Duffy <du...@yahoo.com>.
Thank you, Peter Lin.  I wasn't aware of the new
status servlet.  I'll look into an upgrade.

One question: any problems reported with installing
Tomcat 5.0.x as a service on Windoze servers?  I
believe they switched from Alexandria's JavaService to
the new Jakarta Daemon for TC 5.0.x.  Is that correct,
and has that been a seamless transition?  Thanks - %


--- Peter Lin <tc...@yahoo.com> wrote:
> if you can upgrade to tomcat5, I would recommend it.
>  the reason I suggest this is TC5 has the new status
> servlet, which will tell you how much heap is
> actually in use currently.
>  
>  
> the JVM will not release memory back to the OS that
> is true. in terms of performance the biggest
> indicator of poor performance is the rate at which
> the heap grows and the frequency of full GC.
>  
>  
> Applications that are well behaved should result in
> regular intervals of full GC. Poor performing
> applications wiill cause erratic and frequent full
> GC. Even if you can't upgrade to TC5, it might be
> worth it to d/l and install it.  Once you have it
> installed, you can use JMeter to view the server
> load and the memory usage pattern.
>  
> I hope that helps.
>  
> peter
>  
> 
> 
> Michael Duffy <du...@yahoo.com> wrote: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:
> tomcat-user-unsubscribe@jakarta.apache.org
> For additional commands, e-mail:
> tomcat-user-help@jakarta.apache.org
> 
> 
> 		
> ---------------------------------
> Do you Yahoo!?
> Friends.  Fun. Try the all-new Yahoo! Messenger



	
		
__________________________________
Do you Yahoo!?
Friends.  Fun.  Try the all-new Yahoo! Messenger.
http://messenger.yahoo.com/ 

---------------------------------------------------------------------
To unsubscribe, e-mail: tomcat-user-unsubscribe@jakarta.apache.org
For additional commands, e-mail: tomcat-user-help@jakarta.apache.org


Re: Memory Settings On Tomcat

Posted by Michael Duffy <du...@yahoo.com>.
One other factor in upgrading to Tomcat 5.0.x: 

I'm using JSTL for my app, so that will mean a JSTL
1.1 JAR upgrade, too.  I haven't tested anything with
it yet. 

%


--- Peter Lin <tc...@yahoo.com> wrote:
> if you can upgrade to tomcat5, I would recommend it.
>  the reason I suggest this is TC5 has the new status
> servlet, which will tell you how much heap is
> actually in use currently.
>  
>  
> the JVM will not release memory back to the OS that
> is true. in terms of performance the biggest
> indicator of poor performance is the rate at which
> the heap grows and the frequency of full GC.
>  
>  
> Applications that are well behaved should result in
> regular intervals of full GC. Poor performing
> applications wiill cause erratic and frequent full
> GC. Even if you can't upgrade to TC5, it might be
> worth it to d/l and install it.  Once you have it
> installed, you can use JMeter to view the server
> load and the memory usage pattern.
>  
> I hope that helps.
>  
> peter
>  
> 
> 
> Michael Duffy <du...@yahoo.com> wrote: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:
> tomcat-user-unsubscribe@jakarta.apache.org
> For additional commands, e-mail:
> tomcat-user-help@jakarta.apache.org
> 
> 
> 		
> ---------------------------------
> Do you Yahoo!?
> Friends.  Fun. Try the all-new Yahoo! Messenger



	
		
__________________________________
Do you Yahoo!?
Friends.  Fun.  Try the all-new Yahoo! Messenger.
http://messenger.yahoo.com/ 

---------------------------------------------------------------------
To unsubscribe, e-mail: tomcat-user-unsubscribe@jakarta.apache.org
For additional commands, e-mail: tomcat-user-help@jakarta.apache.org


Re: Memory Settings On Tomcat

Posted by Peter Lin <tc...@yahoo.com>.
if you can upgrade to tomcat5, I would recommend it.  the reason I suggest this is TC5 has the new status servlet, which will tell you how much heap is actually in use currently.
 
 
the JVM will not release memory back to the OS that is true. in terms of performance the biggest indicator of poor performance is the rate at which the heap grows and the frequency of full GC.
 
 
Applications that are well behaved should result in regular intervals of full GC. Poor performing applications wiill cause erratic and frequent full GC. Even if you can't upgrade to TC5, it might be worth it to d/l and install it.  Once you have it installed, you can use JMeter to view the server load and the memory usage pattern.
 
I hope that helps.
 
peter
 


Michael Duffy <du...@yahoo.com> wrote: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: tomcat-user-unsubscribe@jakarta.apache.org
For additional commands, e-mail: tomcat-user-help@jakarta.apache.org


		
---------------------------------
Do you Yahoo!?
Friends.  Fun. Try the all-new Yahoo! Messenger